【问题标题】:Symfony2 Routing annotation ErrorSymfony2 路由注释错误
【发布时间】:2014-10-12 00:20:22
【问题描述】:

我正在做 symfony2 项目,打开索引页面时出现如下路径错误:

在 GmjobExaminationBundle:Front:list.html 中渲染模板期间引发了异常(路由“gmjob_examination_front_view”的“参数“id”必须匹配“[^/]”(“4719”给定)。”) .twig 在第 25 行。

这是我的 list.html.twig 第 25 行:

<a href="{{ path(view.mainRouteName, view.mainRouteParams) }}"><h2>{{ view.title }}</h2></a>

这是路线注释:

 * @Route("/detail-concours/{id}/{slug}", requirements = {"id" = "[^/]"})

这里是检查类Entity的两种方法:

public function getMainRouteName()
{
    return 'gmjob_examination_front_view';
}

public function getMainRouteParams()
{
    return array(
        'id'   => $this->id,
        'slug' => $this->slug
    );
}

感谢您的帮助。之前谢谢你。

【问题讨论】:

    标签: php symfony web routing


    【解决方案1】:

    您已将 id 参数的要求设置为 [^/],这实质上意味着:Id 必须匹配除 / 之外的任何 单个 字符。

    您可能是说,正如@Cherry 所说的[^/]+。如果是这样,您可以将requirements 部分全部删除,因为这正是 Symfony 路由器中的默认参数正则表达式。

    那就去做吧:

    * @Route("/detail-concours/{id}/{slug}")
    

    提示:如果您的 id 始终为整数,您可能希望将其设为:

    * @Route("/detail-concours/{id}/{slug}", requirements = {"id" = "\d+"})
    

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 2016-03-26
      • 2015-12-20
      • 1970-01-01
      相关资源
      最近更新 更多