Symfony2 Получить имя пользователя в навигации

Я начал использовать Symfony2 Framework, который выглядит очень хорошо для меня.
После создания первых пакетов для перестройки существующего проекта с Symfony2 я пришел к этой проблеме:

Я создал {% block navigation %} в base.html.twig, где находится моя навигация
Затем в моем пакете я расширяю base.html.twig, и навигация становится видимой.
Все в порядке.

Моя проблема в том, что я хочу показать приветствие зарегистрированным пользователям, но base.html.twig не имеет логики или контейнера, и мне интересно, как я могу «протолкнуть» информацию о пользователе, чтобы мне не нужно было определять информацию о пользователе в контроллере каждого пакета.

На данный момент мое действие контроллера выглядит так:

public function indexAction()
{
$sUser = $this->getUser();
return $this->render('@WhatEver/index.html.twig', array(
'sUser'  => $sUser
));
}

Итак, мой вопрос: Как я могу управлять своим проектом, чтобы информация о пользователях в навигации существовала из каждого пакета?

Является ли расширение Twig правильным способом?
Или мне нужно изменить способ включения шаблонов?

Спасибо всем, кто может помочь мне с этим!

2

Решение

Доступ к стандартному пользователю Symfony можно получить напрямую через Twig;

{{ app.user.username }}
5

Другие решения

Вы можете установить имя пользователя в сеансе

Тогда вы могли бы позвонить с {{ session.username }}

Другая возможность будет FOS:UserBundle, Если пользователь вошел в систему, вы можете показать его с {{ app.user.name }},

Третий вариант — расширение Twig.

1

По вопросам рекламы [email protected]