4

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

4

3 回答 3

11

使用 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)
于 2015-11-27T09:03:35.737 回答
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;  
于 2015-01-13T12:47:34.550 回答
0

在实体存储库中编写自定义函数可能会更好。

于 2012-12-13T01:02:09.863 回答