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
表示該操作可用。
這可能嗎?怎麼樣?