在Twig的render()函数之后没有更多可用的路由

时间:2014-10-06 20:23:13

标签: symfony twig

我面临来自Symfony 2.5.5(PHP 5.6.1)的奇怪行为,更具体地说是Twig。这是我的模板布局的一个片段:

<nav>
    {% render controller('SGLotteryGameBundle:Home:lastDraw') %}
    <ol class="breadcrumb">
        <li><a href="{{ path('sg_lottery_home') }}">{{ 'SuperWinner'|trans }}</a></li>
        {% block bc %}{% endblock %}
    </ol>
</nav>

此模板正常工作,直到我添加render电话。之后,Symfony报道:

An exception has been thrown during the rendering of a template
("Unable to generate a URL for the named route "sg_lottery_home" as such route does not exist.")
in /home/kevin/Prog/PHP/SG2/src/SG/Lottery/GameBundle/Resources/views/layout.html.twig at line 70.

当然,sg_lottery_home已定义,并且在没有render块的情况下运行良好。如果我评论此路由的路径生成,则紧接着的路径将失败。标记之前的路由没有任何问题。

这是SGLotteryGameBundle:Home控制器:

<?php
namespace SG\Lottery\GameBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Response;

class HomeController extends Controller
{
    /**
     * @Template
     */
    public function indexAction()
    {
        return [];
    }

    public function lastDrawAction()
    {
        return new Response('Dummy');
    }
}

我尝试将{% render ... %}替换为{{ render(...) }},没有任何更改。

重要说明:只有在我登录时才会发生。

1 个答案:

答案 0 :(得分:0)

显然,这是由JMSI18nRoutingBundle在检索用户的区域设置时生成错误引起的:可用区域设置为enfr以及用户的区域设置fr_FR。我不知道{{ render(...) }}调用是如何与之互动的。