我正在尝试使用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
。为什么这个参数不想是可选的?
所以..我完全迷失了几个小时,并希望得到一些帮助/指示。
提前致谢。
编辑:所以,发布后几分钟我发现没有路由中的尾部斜杠就可以了。但是知道这仍然是一个问题。
答案 0 :(得分:1)
只需创建第二条路径:
upload_bare:
path: /{_locale}/upload/
defaults: { _controller: BaseAcmeBundle:Default:upload, _locale: nl }
requirements:
_locale: nl|en
请注意,在你的函数中,默认情况下你应该有gameName = null,它应该是你的最后一个参数。