TWIG YII, как переопределить блок из включенного файла - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть такая структура:

layout.twig:

{% include header.twig %}
{% block block1 %}
{% endblock %}

header.twig:

{% block block2 %}
{% endblock %}

index.twig:

{% extends "layout.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}

Когда я рендую index.twig, block1 заменяется текстовым значением, как и ожидалось, но block2 остается пустым. Почему block2 не заменяется повторно объявленным контентом? Это правильно для TWIG общего или это проблема внедрения TWIG только для Yii Framework? Как мне изменить структуру, чтобы она работала, как описано?

Заранее спасибо)

1 Ответ

0 голосов
/ 26 апреля 2012

Это просто из-за структуры, обычным способом является наличие корневого блока в макете и переопределение некоторых блоков в шаблонах.

layout.twig:

{% block body %}
  {% block block2 %}
    {% include header.twig %}
  {% endblock %}

  {% block block1 %}default text for block 1 
  {% endblock %}
{% endblock %}

header.twig:

default text for block 2

index.twig:

{% extends "layout.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}

вывод:

text for block 1
text for block 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...