Ошибка Doctrine2 findBy ('prop' => array ('value')) - PullRequest
2 голосов
/ 09 марта 2012

может кто-нибудь сказать мне, почему это не работает:

$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

Это ошибка?

1 Ответ

0 голосов
/ 09 марта 2012

Это потому, что Doctrine \ ORM \ Persisters \ BasicEntityPersister, используемый Doctrine \ ORM \ EntityRepository, выполняет

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

при выполнении findBy, где

$criteria

твой

array( 'myProperty' => 'myValue' )

так что если вы используете массив вместо 'myValue', он просто не будет работать. Он не предназначен для использования таким образом.

...