Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Zend] MVC + operacje na kilku tabelach
Forum PHP.pl > Forum > PHP > Frameworki
zordon
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?
Ikky
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.