2017-05-29 151 views
0

使用findBy()方法我有一個簡單的控制器如下:錯誤在Symfony3

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

我想追加滿足我的一個條件(OR運算符)的記錄,而不是我的所有條件 – ahoora

回答

2

問題是findBy的第二個參數是排序順序。通過array('id' => 2)作爲排序順序導致您的錯誤(如果您已閱讀它的文本)。

所以解決的辦法就是在一個陣列中同時通過過濾器標準:

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

我希望記錄具有'username = $ username'或記錄具有'id = 2'。我認爲你的建議讓這些記錄具有'username = $ username'和記錄具有'id = 2'。我對嗎? – ahoora

+0

是的,你是對的。在你的情況它是https://stackoverflow.com/questions/34003492/doctrine-findby-method-with-or-condition –

+0

謝謝,但鏈接並沒有幫助!你知道我根據Symfony文檔http://symfony.com/doc/current/doctrine.html#fetching-objects-from-the-database來做,但結果並不理想。 – ahoora