Używam FOSuserbundle zacząć z rejestracją użytkownika https://github.com/FriendsOfSymfony/FOSUserBundleDostęp zalogowanego użytkownika w szablonie
Mam to rejestracji/logowaniu i na zewnątrz. Teraz chcę pobrać dane zalogowanych użytkowników i zaprezentować je na każdej stronie mojej witryny. Jak "Hi username" w nagłówku typu rzeczy.
Wydaje się, że osadzanie kontroler w moim app/Resources/views/base.html.twig jest najlepszym sposobem, aby to zrobić http://symfony.com/doc/current/book/templating.html#embedding-controllers
Więc napisałem mój kontroler dostępu do danych profilu użytkownika. Nie mogę się dowiedzieć, jak uzyskać dostęp do metod FOS w moim sterowniku osadzonym. Więc z mojego Acme/UserBundle/Controller/UserController.php chcę to zrobić:
public function showAction()
{
$user = $this->container->get('security.context')->getToken()->getUser();
if (!is_object($user) || !$user instanceof UserInterface) {
throw new AccessDeniedException(
'This user does not have access to this section.');
}
return $this->container->get('templating')
->renderResponse('FOSUserBundle:Profile:show.html.'.$this->container
->getParameter('fos_user.template.engine'), array('user' => $user));
}
który złapałem od: sprzedawca/pakiety/FOS/UserBundle/Controller/ProfileController.php
dzięki. Zmieniłem "ROLE" na "IS_AUTHENTICATED_REMEMBERED" i zadziałało świetnie. – ed209
Nie używam FOSuserbundle (chyba że teraz jest dostępny), ale 'app.user.username' nadal pracował dla mnie. Może ci się przydać, żeby ktoś to wiedział. –
Dzięki! To powinno być znacznie jaśniejsze w dokumentacji. –