我试图实现一个控制器,该控制器对数组进行递归操作。 下面是代码:执行递归函数时出现Symfony错误
/**
* @Route("/printTree", name="printTree")
*/
public function printTree(array $elements, $parentId = 0) {
$em = $this->getDoctrine()->getManager();
$elements = $em->getRepository('AppBundle:Tree')->findAll();
$treeArray = array();
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = printTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$treeArray[] = $element;
}
}
return $treeArray;
}
这是我的错误:我通过网站为其他类似问题搜索
Controller "AppBundle\Controller\DefaultController::printTree()" requires that you provide a value for the "$elements" argument (because there is no default value or because there is a non optional argument after this one).
,这个问题似乎是在教义的注解,其中占位符是必要的。 如果我写例如:
/**
* @Route("/printTree/{$elements}/{0}", name="printTree")
*/
我怎样才能使它在这个例子中工作?
你可以尝试用'$这个 - > printTree',而不是'printTree' – Matteo
@Matteo没有什么变化 – Dygne