我有一个动态创建的数据库,仅供试用。我创建了一个父(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
}
现在我将$节点返回到我的视图中,作为回报,我只获得只有一个子节点的子节点而不是所有子节点的所有子节点。
我在这里犯了什么错误?请帮忙,谢谢!
答案 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());
}