我的路线有三个参数,总是需要用户ID,a和b是可选参数。可以给出a或(a和b)或(既不是a也不是b):
$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项目中的路由?
答案 0 :(得分: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)); });