Twig: Как установить заголовок во вложенных шаблонных блоках? - PullRequest
1 голос
/ 12 июня 2019

У меня есть структура веток, подобная этой:

{% extends '@layouts/default.html.twig' %}

{% block headerBar %}
    {% include 'partials/my-navigation.html.twig' %}
{% endblock %}

{% block content %}
    some content
{% endblock %}

Но теперь у меня всегда есть один и тот же заголовок в моем "my-navigation.html.twig".

Как я могу сделатьэто динамически?может быть что-то вроде этого:

{% extends '@layouts/default.html.twig' %}

{% block myNiceTitle %}
    COOL TITLE 
{% endblock %}

{% block headerBar %}
    {% include 'partials/my-navigation.html.twig' %}
{% endblock %}

{% block content %}
    some content
{% endblock %}

и тогда я буду использовать свой заголовок в файле "my-navigation.html.twig" динамически?но как?

Я уже прочитал руководство здесь:

https://twig.symfony.com/doc/2.x/functions/block.html

но это делает меня умнее: (

Спасибо за любые подсказки

Ответы [ 2 ]

1 голос
/ 12 июня 2019

Предполагая, что myNiceTitle является блоком в шаблоне навигации, вы можете использовать embed и сделать что-то вроде:

{% extends '@layouts/default.html.twig' %}

{% block headerBar %}
    {% embed 'partials/my-navigation.html.twig' %}  
        {% block myNiceTitle %}
            COOL TITLE 
        {% endblock %}
    {% endembed %}
{% endblock %}

{% block content %}
    some content
{% endblock %}

И где-то в partials/my-navigation.html.twig:

{% block myNiceTitle %}
    DEFAULT TITLE {# or nothing at all... #}
{% endblock %}
0 голосов
/ 12 июня 2019

Установите переменную перед включением

{% set title = 'COOL TITLE' %}

{% block headerBar %}
  {% include 'partials/my-navigation.html.twig' %}
{% endblock %}

Затем используйте ее в вашем включении

<title>{{ title }}</title>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...