如何在Symfony 2.2中使用“render”在Twig中插入Controller?

时间:2013-03-05 10:17:48

标签: symfony twig symfony-2.2

我正在将我的项目从Symfony 2.0.22升级到2.2.0并查看一些更改,但我已被阻止:

我想渲染(如在Sf 2.0.X中)带有控制器的标题,“渲染”树枝方法对我不起作用。他们是错误:

  

在渲染模板期间抛出了异常(“No   找到“GET Index:header”“)的路线   “OSSiteBundle:索引:index.html.twig”。

这是实际的渲染方法:

  

{#src / OS / SiteBundle / Resources / views / layout.html.twig#}

     

...

     

{%render“OSSiteBundle:Index:header”with {'thisid':block('thisid'),...}%}

我试过了:

{{ render('OSSiteBundle:Index:header' , {'thisid' : block('thisid'), 'thistitle' : block('thistitle'), 'thisunderpageid' : block('thisunderpageid'), 'thisbackground' : block('thisbackground') }) }}

{{ include("OSSiteBundle:Index:header.html.twig", {'thisid' : block('thisid'), 'thistitle' : block('thistitle'), 'thisunderpageid' : block('thisunderpageid'), 'thisbackground' : block('thisbackground') }) }}

=>最后一个工作但控制器没有以这种方式进行校对

我甚至尝试使用routing.yml中的路径渲染...我没有其他想法可以帮助我!

1 个答案:

答案 0 :(得分:87)

在Symfony> = 2.2.x中,你应该像这样嵌入你的控制器:

{{ render(controller('AcmeArticleBundle:Article:recentArticles', { 'max': 3 })) }}

看一下文档:

Creating and using Templates

UPGRADE-2.2