rabbit418
@rabbit418
23 yo Designer from Ukraine

Как в Twig использовать шаблон в зависимости от ситуации?

Имеется несколько Twig шаблонов, и страница где нужно их выводить в зависимости от значения переменной. Но Twig почему то игнорирует условия и использует последний подключенный шаблон, в данном примере "template2.twig".

{% extends 'layout.twig' %}

{% if foo == bar %}
    {% use 'template1.twig' %}
{% else %}
    {% use 'template2.twig' %}
{% endif %}

{% block content %}{% endblock %}
  • Вопрос задан
  • 676 просмотров
Решения вопроса 1
rabbit418
@rabbit418 Автор вопроса
23 yo Designer from Ukraine
Получилось решить проблему простым вложением.

Есть файл layout.twig в нем базовый шаблон, далее файл index.twig в нем шаблон страницы, и отдельные файлы для каждого из микрошаблонов.

layout.twig:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    {% block content %}{% endblock %}
</body>
</html>


index.twig:
{% extends 'layout.twig' %}

{% block content %}
    {% block info %}{% endblock %}
{% endblock %}


Ну и template1.twig например:
{% extends 'index.twig' %}

{% block info %}Hello World{% endblock %}


Ну и на страницу рендерим template1.twig.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
daur_sdg
@daur_sdg
Может условия не выполняется? Проверь так

{% if 1 == 1 %}
{% use 'template1.twig' %}
{% else %}
{% use 'template2.twig' %}
{% endif %}

Если будет вывод template1.twig, то проблема именно в условиях
Ответ написан
Ваш ответ на вопрос

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

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