Symfony2使用尾部斜杠路由可选参数

时间:2013-11-20 20:40:16

标签: symfony parameters routing yaml optional

我正在尝试使用Symfony2编写我的第一个应用程序。这是一个相当简单的游戏,只是为了习惯使用Symfony2,但路由正在困扰我。

我使用YAML进行路由并具有以下路由:

upload:
    path: /{_locale}/upload/{currentGameType}/
    defaults:  { _controller: BaseAcmeBundle:Default:upload, currentGameType: gameName, _locale: nl }
    requirements:
        _locale: nl|en

currentGameType是可选的,并且始终是'gameName',如果未设置,则为默认游戏。

因此,当转到en/upload时,路由upload:被忽略,我收到路径未找到的消息

例如,当我转到en/upload/gameName时,路线确实有效并且游戏类型设置为gameName。为什么这个参数不想是可选的?

所以..我完全迷失了几个小时,并希望得到一些帮助/指示。

提前致谢。

编辑:所以,发布后几分钟我发现没有路由中的尾部斜杠就可以了。但是知道这仍然是一个问题。

1 个答案:

答案 0 :(得分:1)

只需创建第二条路径:

upload_bare:
    path: /{_locale}/upload/
    defaults:  { _controller: BaseAcmeBundle:Default:upload, _locale: nl }
    requirements:
        _locale: nl|en

请注意,在你的函数中,默认情况下你应该有gameName = null,它应该是你的最后一个参数。