Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Zend] MVC + operacje na kilku tabelach
zordon
post 14.10.2009, 09:51:24
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


moglby mi ktos wytlumaczyc gdzie jest najlepsze miejsce na kod rozwiazujacy takie zagadnienie:
mam kilka tabel bazy z relacjami. kazda tabela ma swoj model w zendzie. gdy potrzebuje kombinowac jakos z danymi ale w obrebie jednej tabeli nie ma problemu. ale jak radzic sobie gdy potrzebuje pobrac dane z kilku tabel? stworzyc kolejny model jako własciwosci zawierajacy obiekty tych modeli(reprezentujacych tabele bazy)? czy moze zarzadzac tym wszystkim z poziomu controllera - wywolywac w kazdym modelu metode pobierajaca odpowiednie dane? czy moze w jednym modelu w zaleznosci od potrzeb tworzyc instancje innych i wtedy robic laczone zapytanie?a moze jeszcze inaczej?
z gory dzieki za rady, nie chcialbym nabierac zlych nawykow w sprawach tak istotnych

dodam moze, ze w polaczeniach z baza staram sie stosowac metody select(), a nie samemu pisac zapytania - w jaki sposob elegancko uzywac tego sposobu do operacji na wielu tabelach?

Ten post edytował zordon 14.10.2009, 09:54:06
Go to the top of the page
+Quote Post
nospor
post 14.10.2009, 09:54:24
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://framework.zend.com/manual/en/zend.d...ationships.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ikky
post 14.10.2009, 12:29:20
Post #3





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


dam Ci gotowe rozwiązanie bo sam miałem z tym kiedyś wielkie problemy

  1. $select = parent::select()
  2. -> setIntegrityCheck(false)
  3. -> from (array('u'=>'uzytkownicy'), array('kolumny','ktore','chce','pobrac'))
  4. -> join (array('a' => 'avatary'), 'a.id = u.avatar_id')
  5. -> where('u.id =?', $id);
  6.  
  7. return $this->fetchRow($select)->toArray();
  8.  


Więc tak pobiera mi dane z tabeli uzytkownicy gdzie u.id = $id
i łączy mnie z tabelką avatary gdzie avatar.id = uzytkownik.avatar_id

jak nie chce pobierac wszystkich danych z tabeli avatary to dodaj bo u.avatar_id', array('np link')

i to cała filozofia

to może być w dowolnej funkcji nawet w kontrolerze o ile wpisales dane do bazy w app.ini

pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 03:34