2016-09-06 2 views
0

Я чувствую, что это очень глупая проблема, но не может ее решить.Twig extend не работает

установлен Туиг с помощью композитора, версия 1.24.2

Попытка основные функциональные возможности, начали с проходящими шаблонов:

инициализации

$loader = new Twig_Loader_Filesystem('template'); 
$twig = new Twig_Environment($loader, array(
    'cache' => 'c_cache', 
    'debug' => true, 
    'auto_reload' => true, 
)); 

Rendering

echo $twig->render('layout.twig', array(
'data' => array(
    'title' => 'Page title!', 
))); 

layout.twig

... 
<body> 

{% block header %}{% endblock %} 

</body> 
... 

_header.twig

{% extends 'layout.twig' %} 

{% block header %} 
    Hello? 
{% endblock %} 

Update

я понял концепцию расширения, я должен использовать включить в этой ситуации.

+0

Как это не работает? Вы вызываете '$ twig-> render ('layout.twig', ...)', который отображает только 'layout.twig'. Возможно, вы хотели называть '$ twig-> render ('_ header.twig', ...)'? – martin

+1

Я хочу вызвать layout.twig и включить в него частичные _header.twig, _body.twig и т. Д. ... – RomkaLTU

+1

Это не то, что сделано для 'extends'. Вы хотите, скорее всего, использовать тег 'include', см. Http://twig.sensiolabs.org/doc/tags/include.html – martin

ответ

0

Ваш рендер должен быть от _header.twig, а не от layout.twig. Если вы создаете макет, заголовок блока пуст.

Попробуйте сделать из _header.twig, и вы получите ожидаемый результат.

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