在Symfony3中使用findBy()方法时出错

时间:2017-05-29 08:48:06

标签: php doctrine-orm symfony-3.2

我有一个简单的控制器如下:

public function fetchDataAction($username){
    $user_email = $this -> getDoctrine()
        -> getRepository('AdminBundle:Users')
        -> findBy( array('username' => $username ), array('id' => 2));

    return $this -> render('AdminBundle:Admin:fetchData.html.twig', array('datas' => $user_email));
}

但是在运行代码时我遇到了错误:

Invalid order by orientation specified for AdminBundle\Entity\Users#userId

将一个数组传递给findBy()方法,代码无错误地运行,但是当我传递多个数组时,它失败了!

问题出在哪里?

1 个答案:

答案 0 :(得分:2)

问题是findBy的第二个参数是排序顺序。将array('id' => 2)作为排序顺序传递会导致您的错误(如果您已阅读过它的文字)。

因此解决方案是将两个过滤器标准传递到一个数组中:

-> findBy( array('username' => $username, 'id' => 2) );