【问题标题】:How Generating URLs from a template correctly in Symfony2/Twig如何在 Symfony2/Twig 中正确地从模板生成 URL
【发布时间】:2013-03-29 06:02:14
【问题描述】:

我正在使用 Symfony2 并且:

我在 routing.yml 中有这个

_welcome:
    resource: "@AcmeBundle/Controller/"
    type:     annotation

我在控制器中使用这个方法:

/**
 * @Route("/{page}")
 */
public function staticAction($page)
{
    return $this->render('AcmeBundle:Static:'.$page.'.html.twig');
}

生成通用页面:

/home
/contact 
/privacy

但是当我在菜单上设置网址时:

<a href="{{ path('_welcome', {'page': 'home'}) }}">Home</a>
<a href="{{ path('_welcome', {'page': 'contact'}) }}">Contact</a>
<a href="{{ path('_welcome', {'page': 'privacy'}) }}">Privacy</a>

我 Symfony 会生成这些 url:

…./?page=home
…./?page=contact
…./?page=privacy

正确的是:

/home
/contact
/privacy

我必须做什么?

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

    您必须在控制器路由注释中添加路由名称,如下所示,

    /**
     * @Route("/{page}", name="static")
     */
    public function staticAction($page)
    {
        // ... 
    }
    

    然后您可以使用该名称调用 twig path 助手,

    <a href="{{ path('static', {'page': 'home'}) }}">Home</a>
    

    【讨论】:

      猜你喜欢
      • 2014-07-14
      • 2012-09-09
      • 2012-02-08
      • 2012-05-20
      • 2017-09-22
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多