2012-03-09 38 views
2

可能有人告訴我,爲什麼不工作:Doctrine2 findBy( '​​託'=>陣列( '值'))未

$this->doctrine 
    ->getEntityManager('default') 
    ->getRepository('\myVendor\myBundle\Entity\myEntity') 
    ->findBy(array('myProperty' => array('myValue'))); 

而以下作用:

$this->doctrine 
    ->getEntityManager('default') 
    ->getRepository('\myVendor\myBundle\Entity\myEntity') 
    ->findBy(array('myProperty' => 'myValue')); 

首先查詢值是一個數組,而第二個是字符串。

是這樣的錯誤,我得到:

Notice: Undefined index: myProperty in /home/developer/public_html/myProject/vendor/doctrine/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1324

它是一個錯誤嗎?

+0

你到底想用數組作爲數值來做什麼?我的意思是''prop'=> array('x')' - 這應該怎麼做?我很確定查找方法只支持直接相等檢查 – 2012-03-09 10:13:25

回答

0

這是因爲教義\由學說使用ORM \,持久\ BasicEntityPersister \ ORM \ EntityRepository做findBy,其中

$criteria 

是你

當執行

foreach ($criteria as $field => $value) { 

array('myProperty' => 'myValue') 

因此,如果您使用數組而不是'myValue',它將無法正常工作。它不是以這種方式使用的。

+0

Thx很多!最後在教義Jira網站填補了一個錯誤,現在已經解決了! – user846226 2012-06-05 15:44:12

+0

很高興它以任何方式幫助你:) – 2012-06-18 07:14:10

+0

@ user846226 - 你是如何解決它的?您想與我們分享嗎? – BentCoder 2015-03-20 12:12:07