我遇到了路线中可选参数的一些问题。我认为我根据documentation正确地做到了,但它仍然没有用。
所以我定义了以下路线:
test_wizard:
pattern: /test/wizard/{testName}/{step}/
defaults: { _controller: TestBundle:Wizard:wizard, step: 1 }
并希望能够通过/ test / wizard / someTestName调用该路由,然后使用默认值1填写step参数,但每次我使用测试名称调用该路由时,我得到以下内容:
No route found for "GET /test/wizard/someTestName"
当我通过/ test / wizard / someTestName / 1 / itworks调用路由时就好了。为什么我定义的步骤默认值不起作用?有什么建议?感谢。
答案 0 :(得分:1)
如果您之后有一个字符(在您的情况下为/
),则无法使参数成为可选参数。您必须定义两条路线:
test_wizard:
pattern: /test/wizard/{testName}
defaults: { _controller: TestBundle:Wizard:wizard }
test_wizard_optional:
pattern: /test/wizard/{testName}/{step}/
defaults: { _controller: TestBundle:Wizard:wizard, step: 1 }