Regex 路由正则表达式要求:排除特定单词
我正在使用Symfony 2.3.5创建一个应用程序来管理我的音乐。 我在配置路由时遇到一些问题 我想创建3条路线:Regex 路由正则表达式要求:排除特定单词,regex,symfony,routing,Regex,Symfony,Routing,我正在使用Symfony 2.3.5创建一个应用程序来管理我的音乐。 我在配置路由时遇到一些问题 我想创建3条路线: 表演艺术家:/music/mickael\u jackson 编辑艺术家:/music/mickael\u jackson/Edit 播放专辑:/music/mickael\u jackson/thriller 正如您所显示的,“编辑艺术家”和“展示相册”的路由之间存在冲突:“编辑艺术家”被捕获为“展示相册路由”,并给我一个404未找到 我正在尝试使用正则表达式将关键字edi
- 表演艺术家:
/music/mickael\u jackson
- 编辑艺术家:
/music/mickael\u jackson/Edit
- 播放专辑:
/music/mickael\u jackson/thriller
edit
和delete
从路线“Show album”中排除
我在这里找到了一个:(接受的答案有一点变化),但它不起作用,我有一个错误,因为我的路线“Show album”不匹配正则表达式
例外情况:
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}
* )
我找不到配置中的错误
谢谢您的帮助。删除正斜杠
* requirements={"nameCanonical" = "^(?!edit|delete)$"},
因为它已经包含在您的总路径中
否则,正则表达式在我看来没问题;干得好,自己找到答案。大多数不熟悉正则表达式的人在应用环顾断言方面都有困难。使用这种模式^(?。*(编辑|删除)$).*
我也不知道Symfony只需将“编辑艺术家”路线移到“展示专辑”路线之前。
当然,您不能使用“编辑”作为专辑的名称,但我想您可以接受它。谢谢您的帮助,但我仍然有相同的例外。正则表达式是我学到的最复杂的东西,对我来说它仍然是一个谜……嗯,对不起,我对Symfony的了解还不够,无法帮助你。不过,我对你的问题投了赞成票;希望其他人能帮助你。