Silex是否有办法为一个请求定义多个路由。我需要能够为一个页面定义两个路由(两个路由都占用同一页面)。这是我现在的控制器:
$app->get('/digital-agency', function() use ($app) {
return $app['twig']->render('digital_agency.html', $data);
});
当我复制像这样的函数时它起作用:
$app->get('/digital-agency', function() use ($app) {
return $app['twig']->render('digital_agency.html', $data);
});
$app->get('/agencia-digital', function() use ($app) {
return $app['twig']->render('digital_agency.html', $data);
});
那么,是否有更干净的方法去做呢?
答案 0 :(得分:15)
您可以将闭包保存到变量并将其传递给两个路径:
$digital_agency = function() use ($app) {
return $app['twig']->render('digital_agency.html', $data);
};
$app->get('/digital-agency', $digital_agency);
$app->get('/agencia-digital', $digital_agency);
答案 1 :(得分:10)
您还可以使用assert方法匹配某些表达式。
$app->get('/{section}', function() use ($app) {
return $app['twig']->render('digital_agency.html', $data);
})
->assert('section', 'digital-agency|agencia-digital');