我有变量 $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 时相同的数组。这意味着它将返回所有以 root 开头的节点,而不是从所选类别开始。不知何故,在 $parent 变量中使用的方法 findOneByTitle() 不接受来自 getPath() 的参数并且表现为 NULL。