Symfony - Récupérer l'user dans un formulaire

Symfony - Récupérer l'user dans un formulaire

Voici une méthode très simple pour récupérer l'utilisateur actuellement connecté dans un formulaire.

On peut souvent devoir le récupérer pour ensuite faire une requête sur un repository afin de récupérer les données liées à cet utiilisateur

use Symfony\Component\Security\Core\Security;

class ContactAddType extends AbstractType
{
    private $security;

    public function __construct(Security $security)
    {
        $this->security = $security;
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $user = $this->security->getUser();

        $builder
            ->add('tags', EntityType::class, array(
                'class' => Tag::class,
                'query_builder' => function (EntityRepository $er) use ($user) {
                    return $er->createQueryBuilder('u')
                        ->where('u.user = :user')
                        ->setParameter('user', $user->getId())
                    ;
                },
                'expanded' => true,
                'multiple' => true
            ))
    }
}

 

19/10/2020