有人在 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);
此代码有效。
我清除缓存并将 findOneBy
更改为 findBy
:
$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0);
然后我有以下错误:
Error: Call to a member function getComment() on array
有人有想法或线索吗?
提前致谢。
最佳答案
findBy()
返回具有给定条件的对象数组。
如果没有找到,则返回一个空数组。如果只有一行满足您的条件,那么您可以在 $service
的最后添加 [0]
,如下所示:
$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0];
如果没有,您应该使用 foreach 或类似的东西循环找到的数组。
关于doctrine - Symfony findOneBy/findBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815175/