このチュートリアルに従って、すべてをまとめてプロジェクトで機能させると、ネストされたリストを表示するだけで (doctrine 2 と zf2 を使用)、foreach に入ることができません。このコード スニペットを使用すると、次のようになります。
$root_categories = $em->getRepository('Controleitor\Model\Entity\Category')->findBy(array('parent_category' => null));
$collection = new \Doctrine\Common\Collections\ArrayCollection($root_categories);
$category_iterator = new \MYMODULE\Model\Entity\RecursiveCategoryIterator($collection);
$recursive_iterator = new \RecursiveIteratorIterator( $category_iterator, \RecursiveIteratorIterator::SELF_FIRST);
foreach ($recursive_iterator as $index => $child_category){
echo 'test';
}
Debug::dump($recursive_iterator);die;
「テスト」文字列を出力することを期待していますが、これだけを出力します:
object(RecursiveIteratorIterator)#414 (0) {}
しかし、ダンプの前に行うと:
$recursive_iterator->current()->getTitle();
タイトルを取得しました.\Doctrine\Common\Collections\ArrayCollection オブジェクトのループに何らかの形で失敗します。