2

Doctrine2 の find メソッドに問題があります。それらはすべて、ArrayCollection ではなく配列として返されます。

それらにArrayCollectionを返すように強制する方法はありますか? これは、カスタム リポジトリ クエリでも発生したことを覚えています。私がしなければならなかったこと: new ArrayCollection($result)。

4

1 に答える 1

1

これが私の汚い、ローテクなアプローチです。

// your findBy* here:
$entities = $em->getRepository($entclass)->findBy($entFilter, array('id' => 'DESC'));

// my one-liner conversion here:
$entitiesCollection= new \Doctrine\Common\Collections\ArrayCollection($entities);

次に、last()、count()、contains() などの便利な ArrayCollection メソッドを使用できることを確認しました。

var_dump($entitiesCollection->count(), $entitiesCollection); print \strftime('%c') . __FILE__ . __LINE__ . __FUNCTION__; die;  
于 2015-01-13T12:49:11.470 に答える