Doctrine Symfony findOneBy/findBy

Doctrine Symfony findOneBy/findBy,doctrine,symfony,Doctrine,Symfony,有人在Symfony 3(最新版本)中遇到过这个奇怪的问题吗 我有以下简单的代码: $repository = $this->getDoctrine() ->getManager() ->getRepository('GeneralRegistrationBundle:Service'); $service = $repository->findOneBy(array('name' =>

有人在Symfony 3(最新版本)中遇到过这个奇怪的问题吗

我有以下简单的代码:

$repository = $this->getDoctrine()
                   ->getManager()
                   ->getRepository('GeneralRegistrationBundle:Service');

$service = $repository->findOneBy(array('name' => 'Registration'),array('name' => 'ASC'));

$comment = $service->getComment();
$name = $service->getName();

return new Response('le service is '. $name . ', content is ' . $comment);
这个代码有效

我清除缓存并使用
findBy
更改
findOneBy

$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0);
那么我有以下错误:

错误:调用数组上的成员函数getComment()

有人有想法或线索吗

提前感谢。

findBy()
返回具有给定条件的对象数组

如果找不到空数组,则返回空数组。如果只有一行满足您的条件,则可以在
$service
的最后一行添加
[0]
,如下所示:

$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0];

如果没有,您应该使用foreach或类似的东西循环查找到的数组。

您期望的是什么?findOne只返回一个对象。“查找”总是返回一个包含0个或多个对象的数组。Fuhhh…我现在需要去度假…谢谢CeradIs,这个问题解决了吗?如果是,请标记或张贴答案并接受。