В шаблонах twig можно добавить контент в блок?
Например, рассмотрите файлы шаблонов ниже.
layout.html.twig
<html> <head> <style> {% block css %}{% endblock css %} </style> </head> <body> {% block content %}{% endblock content %} </body> </html>
inner.html.twig
{% block css %} a { color: #fff; } body { background: #f00; } {% endblock css %} {% block content %} Some contents here... {% include 'myWidget.html.twig' %} {% endblock content %}
myWidget.html.twig
{% block css %} div a { color: #777; } {% endblock css %} {% block content %} <div><a>myWidget content here...</a></div> {% endblock content %}
Обратите внимание на блок css. То, что я пытаюсь выполнить, – это то, что я хочу, чтобы каждое содержимое блока css добавлялось к блоку css layout.html.twig. Таким образом, конечный результат должен быть:
<html> <head> <style> a { color: #fff; } body { background: #f00; } div a { color: #777; } </style> </head> <body> Some contents here... <div><a>myWidget content here...</a></div> </body> </html>
Это должно сделать трюк:
{% block css %} {{ parent() }} div a { color: #777; } {% endblock css %} {% block content %} <div><a>myWidget content here...</a></div> {% endblock content %}
Ярлык для добавления / добавления содержимого к блокам с небольшим количеством контента, например, с помощью pagetitle
base.html.twig
... <title>{% block title %}MyApp{% endblock %}</title> ...
расширение шаблона шаблона
{% extends '::base.html.twig' %} {% block title 'Page1 - '~parent() %} {# prepend #} {% block title parent()~' - Page1' %} {# append #}