0

我有一个仅为试用目的而动态创建的数据库。我创建了一个父(家庭),设置了它的孩子,然后创建了这些孩子的孩子(你可以说是子孩子)。

现在我只想获取所有子项的列表。

我的代码

    $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
    }

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

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

4

1 回答 1

1

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

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

$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());
}
于 2014-11-14T10:15:53.513 回答