2014-01-18 180 views
0

我主要的佈局,我渲染另一個控制器是這樣的:Symfony2的{%渲染(控制器())%}

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

<div id="main"> 

</div> 

該控制器產生型動物變量(lastUserName,csrf_token,錯誤),現在,我怎麼在我的主layout.html.twig中使用這些變量?

+1

不可能,因爲render會返回生成的html響應。 –

+0

Mumm,我解釋: 我想在主div中顯示錯誤消息,我沒有找到在我的佈局樹枝中獲取錯誤消息的方式? – medKHELIFI

+0

是否有任何其他方式來包括FSOUserBundle:安全:登錄在我的主佈局?順便說一句對不起我的英文不好:p – medKHELIFI

回答

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 - > render('templateName',array()))

+0

謝謝,我會試試這個方法 – medKHELIFI