2012-11-22 53 views
3

我的路由有三個參數,userid始終是必需的,a和b是可選參數。 A或(A和B)或(A和B都),可給予:Silex:可選參數不工作的路由

$app->get('/show/{userid}/{a}/{b}/', function($userid, $a,$b) use($app) { 
     ... 
})->value('a', 'defaultValueA')->value('b', 'defaultValueB'); 

所以我想匹配以下網址:

show/12345 
show/12345/paramA 
show/12345/paramA/paramB 

我的代碼只對上一版本在那裏給出所有參數。哪裏不對?

更新:

我開始了一個全新的項目,並再次測試我的方法。工作。我將我的.htaccess複製到了全新的項目中。仍然有效。所以我的(非常一般的)問題是:還有什麼會影響Silex項目中的路由?

回答

1

我在Silex中使用翻譯服務,並從http://silex.sensiolabs.org/doc/providers/translation.html的使用示例中錯誤地複製到我的代碼中。所以我上面的路由定義受到了前面定義的定義的捕獲。

$app->get('/{_locale}/{message}/{name}', function ($message, $name) use ($app) { 
    return $app['translator']->trans($message, array('%name%' => $name)); });