Doctrine2 findBy('prop'=> array('value'))失败

时间:2012-03-09 09:10:41

标签: symfony doctrine-orm

有人可以告诉我为什么这不起作用:

$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 :(得分:0)

这是因为Doctrine \ ORM \ EntityRepository使用的Doctrine \ ORM \ Persisters \ BasicEntityPersister执行

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

在做findBy时,

$criteria

是你的

array( 'myProperty' => 'myValue' )

所以如果你使用数组而不是'myValue',它将无法正常工作。它的设计不是以这种方式使用的。