Ich verwende FOSuserbundle, um mit der Benutzerregistrierung https://github.com/FriendsOfSymfony/FOSUserBundle zu beginnen
Ich habe es registriert / ein- und abmelden. Was ich jetzt tun möchte, ist, die angemeldeten Benutzerdaten zu erfassen und auf jeder Seite meiner Website zu präsentieren. Wie "Hallo Benutzername" in der Kopfzeile.
Es scheint wie ein Controller in meiner Einbettung app / Resources / Ansichten / base.html.twig ist der beste Weg , dies zu tun http://symfony.com/doc/current/book/templating.html#embedding-controllers
Also habe ich meinen Controller geschrieben, um auf die Benutzerprofildaten zuzugreifen. Was ich nicht herausfinden kann, ist, wie ich auf FOS-Methoden in meinem eingebetteten Controller zugreifen kann. Von meiner Acme / UserBundle / Controller / UserController.php aus möchte ich Folgendes tun:
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));
}
was ich von genommen habe: vendor / bundles / FOS / UserBundle / Controller / ProfileController.php
quelle
app.user.username
trotzdem für mich gearbeitet. Könnte für jemanden nützlich sein, um es zu wissen.Für Symfony 2.6 und höher können wir verwenden
als app.security globale Variable für Twig-Vorlage ist veraltet und wird aus 3.0 entfernt
Mehr Info:
http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements
und sehen Sie die globalen Variablen in
http://symfony.com/doc/current/reference/twig_reference.html
quelle
{{ app.user.firstname }}
. Es ist eher Front-End-Entwickler-freundlich, denke ich.Geben Sie beispielsweise nur den Benutzernamen für die Anmeldung an. Die Standardeinstellung für die Filterfunktion ('') sollte hilfreich sein, wenn sich der Benutzer NICHT anmeldet, indem Sie nur lästige Fehlermeldungen vermeiden.
quelle