2016-01-12 2 views
0

Я пытаюсь положить {% block body %} в {% include 'bundle::...' %}. Вот мой код ниже:Twig Содержимое блога в Включить

{% extends '::base.html.twig' %} 

{% block title %}{{ id }}{% endblock %} 

{% block content %} 

    {% include 'scraperBundle::Event/sideLeft.html.twig' %} 
    {% include 'scraperBundle::Event/sideRight.html.twig' %} 

{% endblock %} 

{% block body %} 
    stuff here to go ingo block body 
{% endblock %} 

Проблема есть все нагрузки правильно, кроме моего {% block body %} не идет на место, он должен, что в {% include 'scraperBundle::Event/sideLeft.html.twig' %} файл здесь:

<div class="event-info"> 
    {% block body %}{% endblock %} 
</div> 

Я не хорошо в твиге, кто-нибудь знает правильный метод или как это сделать?

Спасибо.

============== EDIT ==============

Могу ли я иметь вложенные {% block nameof %}?

{% extends '::base.html.twig' %} 

{% block title %}{{ id }}{% endblock %} 

{% block content %} 

    {% embed 'scraperBundle::Event/sideLeft.html.twig' %} 

     {% block body %} 
     {% endblock %} 

    {% endembed %} 

    {% embed 'scraperBundle::Event/sideRight.html.twig' %} 

{% endblock %} 

============== EDIT 2 (рабочий) ==============

Добавлен второй {% endembed %} и теперь работает. Я думаю, вы можете, действительно, вложить {% block %}.

Могу ли я вложить {% block nameof %}?

{% extends '::base.html.twig' %} 

{% block title %}{{ id }}{% endblock %} 

{% block content %} 

    {% embed 'scraperBundle::Event/sideLeft.html.twig' %} 

     {% block body %} 
     {% endblock %} 

    {% endembed %} 

    {% embed 'scraperBundle::Event/sideRight.html.twig' %} 
    {% endembed %} 

{% endblock %} 

ответ

1

Вы не можете отменить блок от include d. То, что вы ищете, embed:

# template1.html.twig 

{% embed "template2.html.twig" %} 
    {% block override_me %} 
     This will override "HAI" text 
    {% endblock %} 
{% endembed %} 

# template2.html.twig 

Something here 
{% block override_me %}HAI{% endblock %} 
+0

в 'base.html.twig' У меня есть содержимое с именем блока. В том, что я перечислил выше, у меня есть «блок» с этими двумя (теперь встроенными) файлами. Можете ли вы иметь вложенные блоки? [примечание: я перечислил код редактирования выше, чтобы вы могли для ясности] – Kenny

1

Вы не можете определить или переопределить блоки из включаемого шаблона. Пожалуйста, см. this answer к аналогичному вопросу для некоторой исходной информации относительно , почему это не работает.

{% embed %} будет делать все, что вам нужно.

Для вашего второго вопроса: блоки могут быть вложенными. Вложенные блоки довольно распространены на практике.

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