这里在indexAction我必须打电话给subcat函数递归获取类别和子类别的列表,否则它不起作用。PHP Silex如何使用递归?
注意subcat自称。
如何在indexAction之外编写subcat函数?并从内部呼叫IndexAction。这样做,我可以重复使用subcat。
class ItemsController implements ControllerProviderInterface {
public function connect(Application $app) {
$controllers = $app['controllers_factory'];
$controllers
->get('/', array($this, 'indexAction'))
->bind('items_index');
return $controllers;
}
public function indexAction(Application $app) {
$categorias = array();
function subcat($idPadre, array & $categorias, $app) {
$sql = 'SELECT id, categoria FROM categorias' .
' WHERE id_padre=' . $idPadre .
' ORDER BY categoria';
$query = $app['db']->fetchAll($sql);
foreach ($query as $valor) {
$a = subcat($valor['id'], $categorias, $app);
$lista[$valor['id'].'-'.$valor['categoria']] = $a;
}
return $lista;
};
$estructura = subcat(0, $categorias, $app);
print_r($estructura);
return '';
}
}
感谢您的信息! – Guillermo
它为我工作! – Guillermo