我已经配置了这2条路由
$app->match ( '/controller/param/{country}/{q}', "demo.controller:demoAction" )->value ( 'country', 'de' )->value('q', '')->bind ( 'demo_action_with_country' );
$app->match ( '/controller/param/{q}', "demo.controller:demoAction" )->value ( 'q', '' )->bind ( 'demo_action_without_country' );
但是 - 这不起作用。如果我调用 /controller/param/Test-String
路由匹配并返回内容。如果我调用 /controller/param/DE/Test-String
我得到 NotFoundHttpException
我该如何解决这个问题?
最佳答案
好的,我可以自己轻松解决这个问题。这是我的解决方案:
$app->match ( '/controller/param/{q}', "demo.controller:demoAction" )->value ( 'q', false )->bind ( 'demo_action_without_country' );
$app->match ( '/controller/param/{country}/{q}', "demo.controller:demoAction" )->value ( 'country', false )->value('q', '')->bind ( 'demo_action_with_country' );
关于routes - 使用可选参数配置 Silex 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17881459/