【发布时间】:2017-05-13 18:20:54
【问题描述】:
我在创建正则表达式以匹配 URL slugs [a-z](由单个破折号分隔的“单词”)时遇到问题,如下所示:
wordone-wordtwo-wordtree
在路线中:
csa_platform_category:
path: /c/{slug}
defaults: { _controller: CSAPlatformBundle:Category:index }
requirements:
slug: "^[a-z]+(?:-[a-z]+)*$"
在树枝上:
<a href="{{ path('csa_platform_category', {'slug': cat.slug}) }}">{{ cat.name }}</a>
显示的错误是:
在渲染模板期间抛出异常(“路由“csa_platform_category”的参数“slug”必须匹配“[az]+(?:-[az]+)*”(“”给定)生成对应的 URL。”)。
我的正则表达式很糟糕,所以任何帮助都将不胜感激。
【问题讨论】:
-
在PHP中,需要使用正则分隔符来定义正则表达式,试试
"~^[a-z]+(?:-[a-z]+)*$~" -
通过添加分隔符显示一个 auther 错误:没有为“GET /category/mutuelle-sante”找到路由
csa_platform_category: path: /category/{slug} defaults: { _controller: CSAPlatformBundle:Category :index } 要求: slug: "~^[az]+(?:-[az]+)*$~" -
好的,那么问题根本不在于正则表达式。
标签: php symfony twig symfony-routing