2014-01-18 2 views
0

В моей основной макет, я сделать еще один контроллер, как это:Symfony2 {% визуализации (контроллер())%}

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

<div id="main"> 

</div> 

этот контроллер генерирует Differents переменные (lastUserName, csrf_token, об ошибках), теперь как может я используйте эти переменные в моем главном layout.html.twig?

+1

Невозможно, так как рендер возвращает полученный html-ответ. –

+0

Mumm, я объясняю: Я хочу показать сообщение об ошибке в главном div, я не найду способ получить сообщение об ошибке в моем макете twig ?? – 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 

Переменная someVariable пригодной к использованию в main_layout и в шаблоне логина. Вы добавляете все переменные при рендеринге дочернего шаблона в контроллере ($ this -> render ('templateName', array())

+0

Спасибо, я попробую этот подход – medKHELIFI

Смежные вопросы