3

我的路由有三个参数,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');

所以我想匹配以下网址:

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

我的代码仅适用于给出所有参数的最后一个版本。怎么了?

更新:

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

4

1 回答 1

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)); });
于 2012-11-23T09:32:39.327 回答