带有可选参数的路由在Symfony 2中不起作用

时间:2014-01-12 17:53:54

标签: symfony routes

我遇到了路线中可选参数的一些问题。我认为我根据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调用路由时就好了。为什么我定义的步骤默认值不起作用?有什么建议?感谢。

1 个答案:

答案 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 }