J'utilise FOSuserbundle pour commencer l'enregistrement de l'utilisateur https://github.com/FriendsOfSymfony/FOSUserBundle
Je l'ai enregistré / connecté et déconnecté. Ce que je veux faire maintenant, c'est récupérer les données des utilisateurs connectés et les présenter sur chaque page de mon site. Comme "Salut nom d'utilisateur" dans le type d'en-tête de chose.
Il semble que l'intégration d'un contrôleur dans mon application / Resources / views / base.html.twig est le meilleur moyen de le faire http://symfony.com/doc/current/book/templating.html#embedding-controllers
J'ai donc écrit mon contrôleur pour accéder aux données du profil utilisateur. Ce que je ne peux pas comprendre, c'est comment accéder aux méthodes FOS dans mon contrôleur intégré. Donc, à partir de mon Acme / UserBundle / Controller / UserController.php, je veux faire ceci:
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));
}
dont j'ai récupéré: vendeur / bundles / FOS / UserBundle / Controller / ProfileController.php
la source
app.user.username
j'ai quand même travaillé pour moi. Cela pourrait être utile à quelqu'un de le savoir.Pour symfony 2.6 et supérieur, nous pouvons utiliser
car la variable globale app.security pour le modèle Twig est obsolète et sera supprimée de la version 3.0
Plus d'informations:
http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements
et voir les variables globales dans
http://symfony.com/doc/current/reference/twig_reference.html
la source
{{ app.user.firstname }}
. C'est plus convivial pour les développeurs frontaux, je suppose.Présentez simplement le nom d'utilisateur de connexion, par exemple, la fonction de filtrage par défaut ('') devrait être agréable lorsque l'utilisateur n'est PAS connecté en évitant simplement les messages d'erreur ennuyeux.
la source