symfony findBy / findOneBy

时间:2016-08-07 14:32:29

标签: doctrine symfony

有没有人面对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()

有人有想法或线索吗?

提前致谢

1 个答案:

答案 0 :(得分:14)

findBy()返回具有给定条件的对象数组。 如果没有找到,则返回一个空数组。如果只有一行满足您的条件,则必须在$ service的最后一行添加[0],如下所示:

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

如果没有,你应该使用foreach或类似的东西遍历找到的数组。