我正在使用 Symfony 2.3.5 创建一个应用程序来管理我的音乐。我在配置路线时遇到了一些问题。
我想创建 3 条路线:
- 表演艺术家:
/music/mickael_jackson
- 编辑艺术家:
/music/mickael_jackson/edit
- 显示专辑:
/music/mickael_jackson/thriller
如您所见,“编辑艺术家”和“显示专辑”的路线之间会有冲突:“编辑艺术家”被捕获为“显示专辑路线”,并给我一个 404 未找到。
我正在尝试使用正则表达式来排除关键字edit
并delete
从路线“显示专辑”中排除。
我在这里找到了一个:A regular expression to exclude a word/string (Accepted answer with a little change),但它不起作用,我有一个错误,因为我的路线“显示专辑”与正则表达式不匹配。
例外 :
An exception has been thrown during the rendering of a template ("Parameter "nameCanonical" for route "corum_music_album_show" must match "/(?!edit|delete)" ("beneath_the_encasing_of_ashes" given) to generate a corresponding URL.") in CorumMusicBundle:Artist:show.html.twig at line 36.
我的路线:
* @Route(
* "{artistNameCanonical}/{nameCanonical}",
* name = "corum_music_album_show",
* requirements={"nameCanonical" = "^/(?!edit|delete)$"},
* options = {"expose"=true}
* )
我找不到配置中有什么问题。
感谢帮助。