Symfony Silex:带有可选参数的路由不工作

Symfony Silex:带有可选参数的路由不工作,symfony,routing,silex,Symfony,Routing,Silex,我的路线有三个参数,userid总是必需的,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'); 因此,我希望匹配以下URL: show/12345 show/12345/par

我的路线有三个参数,userid总是必需的,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');
因此,我希望匹配以下URL:

show/12345
show/12345/paramA
show/12345/paramA/paramB
我的代码只适用于给出所有参数的最后一个版本。怎么了

更新:


我开始了一个全新的项目,并再次测试了我的方法。工作。我将.htaccess复制到了全新的项目中。仍然有效。所以我(非常普遍)的问题是:在Silex项目中,还有什么会影响路由

我当时正在使用Silex中的翻译服务,无意中从使用示例中复制了太多内容到我的代码中。因此,我上面的路线定义被设置中早些时候定义的这个定义所捕获

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