Как я могу написать DQL для этих объектов? - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть объекты, которые видны как скриншот БД:

Вы можете увидеть скриншот здесь-> http://imageshack.us/photo/my-images/830/asdsasda.jpg/

Я хочу вывести массив объектов TnModuleItem, указав параметр TnRegion.

Как мне написать на DQL, чтобы привести этот запрос.

Редактировать: Я хочу написать такую ​​модель:

public function get_module_items_by_region_id($region_id){
// code comes here
return $tnModuleItemsObj //TnModuleItemsObject
}

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

OK. Я решил проблему с этим:

            $query = $this->em->createQuery('SELECT rmi, mi FROM TnRegionModuleItem rmi JOIN rmi.moduleItem mi JOIN rmi.pageRegion pr JOIN pr.region r WHERE r.id = :regionid');

должен выбрать корневую сущность.

0 голосов
/ 13 сентября 2011

И если вы попробуете что-то вроде:

 <?php
 public function get_module_items_by_region_id($region_id){
     $query = $em->createQuery('SELECT i FROM \namespace\TnRegionModuleItem as i WHERE i.regionId = :region_id');
     $query->setParameter('region_id', $region_id)

     return $query->getResult()
 }     

 ?>

Конечно, вы должны получить свой менеджер сущностей откуда-то и вставить переменную $ em, в моем случае я использую «клей» Bisna для Zend Framework и извлекаю его с помощью Zend_Registry, но это может отличаться в вашем случае.

Получив значение результата, вы можете использовать элементы вашего модуля, и каждый элемент является объектом tnModuleItem.

Удачи!

...