Przemysław
Godlewski
Own company/PHP
programmer/Web
Developer
Temat: 'where' w entities?
witam,prosze o pomoc w następującej kwestii:
mam dwie tabele ponizej:
cms_pages
--------------------
- id
- menu_id
- parent_id
- ordered
- active
cms_pages_content
---------------------------
- id
- page_id (odnosi sie do 'id' wyzej)
- language_id
- keywords
- keydescription
- contents
Zbudowałem entities Page oraz PageContent i wszystko ładnie działa tylko ze jesli napiszę:
$pages = $em->getRepository('MyTestBundle:Page')->find(1);
ale:
a) PageContent (z tabeli cms_pages_content) odpowiadajacy wybranemu id=1 (z tabeli cms_pages) zawiera wpisy wszystkich wersji językowych, a chciałbym wybrac tylko jeden wpis wersji polskiej lub ang w zaleznosci od jakiejs zmiennej np $lang.
b) moge napisac zapytanie ponizej ktore wybierze mi strony z menu gornego (jednego):
$pages = $em->getRepository('MyTestBundle:Page')->findBy(
$where=array('menu_id'=>'1'), // menu id
$order=array('ordered'=>'DESC'), // order
$limit=0);
ale relacja 1:n, czyli obiekty PageContent wybranych rodziców Page będą zawierały wszystkie wpisy w tabeli cms_pages_content, a te pod-obiekty tez chciałbym zawęzić do wybranej wersji jezykowej.
Mam pomysł aby otworzyc sobie klasę Language i ustawić tam static $lang na poczatku wywolywania skryptów i przed odpaleniem powyzszego zapytania $pages,
ale nie wiem jak ograniczyc przy relacji 1:n zwracane rekordy w tabeli docelowej ustawiając którąś z jej kolumn na jakąś wartość..