Symfony / Doctrine:将数据作为对象获取,仍然获取数组

时间:2013-01-30 16:59:15

标签: symfony doctrine entity

我的控制器$ id是外键

  $query = $em->getRepository('SurgeryPatientBundle:Patients')->findPatientByUserID($id);

在我的存储库文件中有这个功能

 public function findPatientByUserID($id)
{

    return $this->getEntityManager()
        ->createQuery('SELECT p FROM SurgeryPatientBundle:Patients p WHERE p.user ='.$id.'')
        ->execute();

}

我想得到一个对象的实例,但仍然得到一个数组。使用find($ id)查询效果很好

编辑 问题解决了,我是如此愚蠢,我调用了$ query [0]

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

如果要抓取对象,则不应使用DQL。 Doctrine实体有一个find函数可以为您处理这个问题。

您可以使用(在您的控制器中)代替所有代码:

$em->getRepository('SurgeryPatientBundle:Patients')->find($id);

DQL功能非常强大,但对于像这样的简单查找,使用内置的查找方法会更有效率和更高效率。提供实体作为教义对象。