我試圖實現一個控制器,該控制器對數組進行遞歸操作。 下面是代碼:執行遞歸函數時出現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