Страницы

Поиск по вопросам

среда, 13 марта 2019 г.

Twig - дочерние шаблоны

Здравствуйте.
Недавно начал изучать Twig, и совсем не понимаю как работать с дочерними шаблонами (лайаутами).
Как мне отправлять данные в дочерний лайаут, чтобы после вывода основного лайаута, дочерние отображались с переданными данными. Или тут надо все лайауты с данными строить по кусочкам а потом собирать?
Ну вот как тут, к примеру, передать массив menu лайауту menu.twig
index.php/*...CODE...*/ Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem($twig_filesystem); $twig = new Twig_Environment($loader, array( 'cache' => TWIG_CACHE, 'debug' => TWIG_DEBUG)); $twig->display('main.twig', array()); /*...CODE...*/
main.twig /*...CODE...*/ {% include "header.twig" %} /*...CODE...*/
header.twig /*...CODE...*/ {% include "menu.twig" %} /*...CODE...*/
menu.twig /*...CODE...*/ {% for link in menu %}

  • {{ link.name }}
  • {% endfor %} /*...CODE...*/
    Помогите, пожалуйста. Заранее спасибо!
    UPD: хотя бы ссылок дайте, пожалуйста)


    Ответ

    Как то сложно вы страницу строите. Посмотрите раздел Extends http://twig.sensiolabs.org/doc/tags/extends.html Проще создать один главный (или пару) шаблон, наследоваться от него и создавать похожие шаблоны переопределяя блоки.
    А про переменные в include смотрите http://x-twig.ru/tags/include/ они передаются
    {% include 'template.html' with {'foo': 'bar'} %}
    Т.е. передаете в основной шаблон переменные, в основном шаблоне указываете какие переменные передать дочернему при include

    Комментариев нет:

    Отправить комментарий