【问题标题】:Regex for slug in symfont routesymfony 路由中 slug 的正则表达式
【发布时间】: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


【解决方案1】:

您遇到的错误是您的cat.slug 为空。

(“”给定)

您应该使用var_dumpdump 检查cat 对象中的数据

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 2015-10-21
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2019-01-01
    • 2014-04-14
    相关资源
    最近更新 更多