Doctrine2 の find メソッドに問題があります。それらはすべて、ArrayCollection ではなく配列として返されます。
それらにArrayCollectionを返すように強制する方法はありますか? これは、カスタム リポジトリ クエリでも発生したことを覚えています。私がしなければならなかったこと: new ArrayCollection($result)。
Doctrine2 の find メソッドに問題があります。それらはすべて、ArrayCollection ではなく配列として返されます。
それらにArrayCollectionを返すように強制する方法はありますか? これは、カスタム リポジトリ クエリでも発生したことを覚えています。私がしなければならなかったこと: new ArrayCollection($result)。
これが私の汚い、ローテクなアプローチです。
// 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;