Doctrine 2 findBy *返回对象

时间:2012-10-04 15:18:40

标签: php doctrine doctrine-orm

是否可以更改findBy*方法以使用实体而不是数组返回对象(我的自定义)?

3 个答案:

答案 0 :(得分:8)

使用findOneBy而不是findBy。 findOneBy作为对象返回。

http://www.doctrine-project.org/api/orm/2.2/class-Doctrine.ORM.EntityRepository.html

$obj = $this
    ->getDoctrine()
    ->getRepository("VendorXXXBundle:EntityName")
    ->findOneBy(array $criteria)

答案 1 :(得分:0)

您可能更适合在实体存储库中编写自定义函数。

答案 2 :(得分:0)

这是我肮脏,低技术的方法。

你的findBy *在这里:

$entities = $em->getRepository($entclass)->findBy($entFilter, array('id' => 'DESC'));  

我的单线转换:

$entitiesCollection= new \Doctrine\Common\Collections\ArrayCollection($entities);

然后我确认我可以使用那些方便的ArrayCollection方法,如last(),count(),contains()等。

var_dump($entitiesCollection->count(), $entitiesCollection); print \strftime('%c') . __FILE__ . __LINE__ . __FUNCTION__; die;