使用Stof Doctrine Extensions Tree无法让孩子的孩子

时间:2014-11-14 08:21:40

标签: symfony stofdoctrineextensions

我有一个动态创建的数据库,仅供试用。我创建了一个父(home),设置了它的子项,然后创建了这些孩子的子项(你可以说子项)。

现在我想只获得所有子孩子的名单。

我的代码

    $pages = $this->getDoctrine()->getRepository('BloggerBlogBundle:Page');
    $nodes = $pages->getChildren();
    $parent = $nodes[0]; //get Parent node 
    $rootNodes = $parent->getChildren(); // get Children of Parent Nodes

    foreach($rootNodes as $node)
    {
        $nodes = $node->getChildren(); // get Children of Children
    }

现在我将$节点返回到我的视图中,作为回报,我只获得只有一个子节点的子节点而不是所有子节点的所有子节点。

我在这里犯了什么错误?请帮忙,谢谢!

1 个答案:

答案 0 :(得分:1)

您正在重置每个foreach上的nodes变量。

要获取所有节点,您可以创建一个数组并将所有后续节点添加到该节点的末尾。

$pages = $this->getDoctrine()->getRepository('BloggerBlogBundle:Page');
$nodes = $pages->getChildren();
$parent = $nodes[0]; //get Parent node 
$children = $parent->getChildren(); // get Children of Parent Nodes

$subChildren = array();

foreach ($children as $child)
{
    $subChildren = array_merge($subChildren, $child->getChildren()->toArray());
}