2014-10-06 49 views
2

我面臨來自Symfony 2.5.5(PHP 5.6.1),更具體的Twig的奇怪行爲。這裏是我的模板佈局的一個片段:Twig的render()函數沒有更多的路由可用

<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 ... %},沒有任何改變。

重要提示:,當我在我登錄時纔會發生

+0

這真的很奇怪。似乎無法在這裏發現問題,我對真正感興趣的問題感興趣。您是否考慮將其降級到2.5.0以確認錯誤? – 2014-10-06 20:31:52

+0

也可以使用'{{render(...)}}'調用代替'{%render%}',因爲後面的代碼已被棄用... – 2014-10-06 20:35:21

+0

請注意,如果我清除緩存,得到完全相同的錯誤,但在第61行,那裏只有'

{{ 'Next Euro Millions draw'|trans }}
';如果我刷新,則顯示第70行。 – 2014-10-06 20:38:59

回答

0

顯然,它是由JMSI18nRoutingBundle在獲取用戶的語言環境產生的錯誤造成的:可用的語言環境是enfr和用戶的語言環境fr_FR。我不知道如何調用{{ render(...) }}調用。