如何为这些实体编写DQL?

时间:2011-09-13 13:23:37

标签: php codeigniter doctrine doctrine-orm dql

我将实体视为数据库截图:

你可以在这里看到截图 - > http://imageshack.us/photo/my-images/830/asdsasda.jpg/

我想通过提供TnRegion参数来引入TnModuleItem的对象数组。

如何使用DQL编写此查询。

编辑:我想写一个这样的模型:

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

2 个答案:

答案 0 :(得分:0)

如果你尝试类似的东西:

 <?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,在我的情况下,我使用Zena Framework的Bisna'glue',我通过Zend_Registry检索它,但在你的情况下可能会有所不同。

使用结果值,您可以预先处理模块项,并且每个元素都是tnModuleItem对象。

祝你好运!

答案 1 :(得分:0)

行。我解决了这个问题:

            $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');

必须选择一个根实体。