symfony2 {%render(controller())%}

时间:2014-01-18 15:19:47

标签: php symfony twig

在我的主要布局中,我渲染了另一个这样的控制器:

{# main layout.html.twig #}
<div id="login">
    {% render(controller("FOSUserBundle:Security:login")) %}
</div>

<div id="main">

</div>

此控制器生成不同的变量(lastUserName,csrf_token,error),现在我如何在主layout.html.twig中使用这些变量?

1 个答案:

答案 0 :(得分:2)

symfony开发人员不打算做什么。

如果可能,

render()应该只渲染一个模板。此模板应扩展其他模板。所以你能做的是:

// FOSUserBundle:Security:login (Template)
{% extends main_layout.html.twig %}

{{ someVariable }}
{% block someName %}  
    YOUR DESIGN
{% endblock %}

// FOSUserBundle:Security:login (Template)    
SOME DESIGN
{{ someVariable }}
{% block someName %}  
    empty
{% endblock %}
SOME DESIGN

变量some​​Variable可用于main_layout和登录模板。在控制器中渲染子模板时注入所有变量($ this - &gt; render('templateName',array()))