有人遇到过symfony3(最新版本)这个奇怪的问题吗?

我有以下简单的代码

$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更改find​​OneBy:

$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或类似的东西循环遍历找到的数组。

关于doctrine - symfony findBy/findOneBy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38815175/

10-09 00:42