Задать вопрос

Как получить переменные из включаемого шаблона Twig?

В шаблонах разных страниц используется один и тот же массив выводимых полей, решил вынести определение этого массива в отдельный файл:

base_fields.twig
{% set base_fields = ["id", "name", "description", "priority"] %}


index.html.twig
{% extends '@App/Default/layout.html.twig' %}
{% block base_fields %}
    {% include '@App/task_abstract/base_fields.twig' with vars %}
{% endblock %}

(включение вне блоков для шаблонов , расширяющих другие, - запрещено)

Но в результате я получаю "Variable "base_fields" does not exist."

Почему не работает, и как реализовать то, что я хочу?
  • Вопрос задан
  • 744 просмотра
Подписаться 3 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@justpusher
Просто у разных шаблонов разный контекст, переменные не глобальные.
Вижу два варианта:
1. Сделать общий родительский шаблон для шаблонов, использующих base_fields, и объявить base_fields в родительском.
2. Написать расширение для twig с функциями типа setMyVar и getMyVar (правда, это некрасиво).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы