Aby rozpocząć rejestrację użytkownika, używam FOSuserbundle https://github.com/FriendsOfSymfony/FOSUserBundle
Mam to podczas rejestracji / logowania i wylogowywania. Teraz chcę pobrać dane zalogowanych użytkowników i zaprezentować je na każdej stronie mojej witryny. Na przykład „Cześć, nazwa użytkownika” w nagłówku.
Wygląda na to, że osadzenie kontrolera w mojej aplikacji / Resources / views / base.html.twig jest najlepszym sposobem na zrobienie tego http://symfony.com/doc/current/book/templating.html#embedding-controllers
Napisałem więc do mojego kontrolera, aby uzyskać dostęp do danych profilu użytkownika. Nie mogę dowiedzieć się, jak uzyskać dostęp do metod FOS w moim wbudowanym kontrolerze. 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óre wziąłem od: vendor / bundles / FOS / UserBundle / Controller / ProfileController.php