0

我的控制器中有 $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]

4

2 回答 2

1

$query->getSingleResult();你也可以使用

看这里

http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html#query-result-formats

于 2013-01-31T01:08:21.180 回答
0

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

而不是所有的代码,你可以使用(在你的控制器中):

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

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

于 2013-01-30T17:09:45.280 回答