2012-07-19 27 views
2

當我在路徑上安裝控制器集合時,默認值不起作用,我不得不提供一個值。無法在已安裝的ControllerCollection上設置默認值

// app.php 
... 
$app->mount('/path/', MyControllerProvider()); 
....  

// my controller provider 
class MyControllerProvider implements ControllerProviderInterface 
{ 
    public function connect(Application $app) 
    { 
     $controllers = $app['controllers_factory']; 

     $controllers->get('/{param}', function($param) { 
      return $param;  
     }) 
     ->value('param','foo'); 
    } 
} 

當我試圖訪問/路/我可以以下錯誤:

NotFoundHttpException:未找到路線 「GET /路徑/」

如果我訪問/路/ someValue中,然後它的工作原理。

如果您將路線添加到主$應用程序,而不是掛載時,默認值可以正常工作。

+0

我設法複製你的結果,但我不知道它爲什麼這樣工作。我知道@igorw經常訪問,也許他可以回答。如果您幾天內沒有收到回覆,我建議您在github上打開一張票。 – Maerlyn 2012-07-19 21:50:16

+0

你有沒有找到這個答案? – Lewis 2012-09-19 11:29:10

+0

至少,當我安裝控制器時,我沒有包含結尾的斜槓,這使默認值工作,例如,所以訪問/路徑會返回富,但/路徑/仍然會拋出錯誤。 – gunnx 2012-09-25 11:54:24

回答

0

Silex將帶有或不帶尾隨斜線的路徑視爲不同的路徑。問題已經發布在github上:https://github.com/silexphp/Silex/issues/149

你可以嘗試註冊兩個路徑到同一個函數(代碼看起來有點奇怪,但應該工作)。