@maximrabotaet

Как в symfony 3.4 вывести логин (или какие-либо данные) в базовый шаблон?

Здравствуйте! При создании роутов в контроллере я могу передавать нужные мне переменные в нужный мне шаблон:
//...

        return $this->render('@App/some.html.twig', [
            'some_key' => $some_var,
        ]);

//...


Сам шаблон екстендит другой @App/layout.html.twig.
{% extends '@App/layout.html.twig' %}

{# ... #}

{% block body %}

    {{ some_key }}

{% endblock %}

{# ... #}


Каким образом я могу перекинуть переменные которые мне нужны в @App/layout.html.twig ? Например логин пользователя или другого рода данные?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
1. Рендер контроллера внутри шаблона
https://symfony.com/doc/3.4/templating/embedding_c...
{{ render(controller(
    AppBundle:Article:recentArticles',
    { 'max': 3 }
)) }}

2. Кастомный Twig Extension, который добавляет функцию, реализующую нужную логику
https://symfony.com/doc/3.4/templating/twig_extens...
{{ articles(3) }}
3. Если надо выводить что-то простое, к примеру, версию приложения, то можно использовать глобальные переменные
https://symfony.com/doc/3.4/templating/global_vari...
{{ app_version }}
4. Какие-то вещи доступны в глобальной переменнойapp, к примеру, тот же инстанс залогиненого пользователя
{{ app.user.username }}

Это справедливо для всех версий Symfony
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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