配列の再帰を操作するコントローラを実装しようとしています。再帰関数を実装するときの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).
私は他の同様の問題のためのウェブサイトを通じて検索は、問題はDoctrineの注釈、プレースホルダ内にあるように見えます必要です。 私は、たとえば書く場合:
/**
* @Route("/printTree/{$elements}/{0}", name="printTree")
*/
は、どのように私はそれがこの例で作業することができますか?
あなたの代わりに 'printTree' – Matteo
@Matteoの'ます$ this-> printTree'で試すことができます何も変わらない – Dygne