兄弟カテゴリの名前の配列を含む変数 $path があります。この変数を使用して、新しい配列 $categories_children を作成します。これには、タイトルに従って $path 配列から各カテゴリの子の配列が含まれます。私はGediminas Morkevicius によるDoctrine Tree-Nestedset拡張機能を使用しており、これを試しました:
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('MyProjectAdminBundle:Category');
$category = $repo->findOneById($id);
$path = $repo->getPath($category);
$categories_children = array();
foreach($path as $node){
$parent = $repo->findOneByTitle($node);
$categories_children[] = $repo->getChildren($parent, true);
}
問題は、引数 $parent を持つメソッド getChildren() が、渡された引数が NULL の場合と同じ配列を返すことです。つまり、選択したカテゴリからではなく、ルートから始まるすべてのノードが返されます。$parent 変数で使用されているメソッド findOneByTitle() は、なぜか getPath() からの引数を受け入れず、NULL として動作します。