1
是否有可能定义Silex路线的路线定义去。举例来说,定义以下途径取决于以前的路线是什么:定义Silex路线,因为它去
/a/{user}/{app_name}/list/ -> /a/{user}/{app_name}/list/{id}/
/a/{user}/{app_name}/add/ -> /a/{user}/{app_name}/add/success/
/a/{user}/{app_name}/help/ -> no sub route
这里路径应该是{id}
当是list
或success
当是add
或没事的时候4th是help
。但我不知道如何在Silex中做到这一点:
$app -> get('/a/{user}/{app_name}/{action}/{sub}/', function (Silex\Application $app, $user, $app_name, $action, $sub) {
...
});
这显然不适用于所有的人。
有没有办法做这样的事情:
$app -> get('/a/{user}/{app_name}/{action}/', function (Silex\Application $app, $user, $app_name, $action) {
if ($action == 'list') {
$app -> get('/a/{user}/{app_name}/{action}/{id}', function (Silex\Application $app, $user, $app_name, $action, $id) {
...
});
} elseif ($action == 'add') {
$app -> get('/a/{user}/{app_name}/{action}/success', function (Silex\Application $app, $user, $app_name, $action) {
...
});
}
});
的行动列表,添加,帮助等都是不确定的,因为它们是由我的用户谁创建简单的应用程序定义在我们的系统中。所以我无法直接在代码中对它们进行硬编码。只有在路由转到特定的用户应用程序后, /a/jim/cook
表示该操作可用。
这可能吗?怎么样?