2014-04-02 117 views
4

我已經做了一些尋找,似乎無法弄清楚如何在Silex的URL段中有一個可選參數。所以我目前有這條路線:Silex中的可選路由參數

/{controller}/{method}/{param} 

param通配符是我想要的可選項。所以這種模式會拿起像

"Controller1/Method1" and "Controller2/Method2/Param" 

建議?

回答

10

剛剛成立時間最長的URL可能(讓所有的部件,包括可選的)處理器,就像這樣:

$app->get('/controller/{method}/{param}', 
    function($method, $param) { 
     // called both by `/controller/some-method/some-param-string`, 
     // `/controller/some-other-method`, and even `/controller` 
}); 

默認情況下,空字符串被指定爲對應於PARAMS的值省略了URL部分。不過,你可以明確地覆蓋這一點,因爲在the doc描述:

$app->get('/page/{pageName}', function($pageName) { 
    // ... 
})->value('pageName', 'index'); 

現在,當/page被訪問,$pageName設置爲'index'