Get User in a Doctrine EventListener Get User in a Doctrine EventListener symfony symfony

Get User in a Doctrine EventListener


I think that you should store pointer to tokenStorage class in your service instead of user object:

class PlasmidListener {    private $tokenStorage;    public function __construct(TokenStorage $tokenStorage)    {        $this->tokenStorage = $tokenStorage;    }    public function prePersist(LifecycleEventArgs $args)    {        $user = $this->tokenStorage->getToken()->getUser();        //...    }}


To avoid error in Symfony4 and above, use TokenStorageInterface instead of TokenStorage

For example

use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;

And in your constructor :

public function __construct(TokenStorageInterface $tokenStorage){    $this->tokenStorage = $tokenStorage;}

To get the user and its details in prePersist :

$user = $this->tokenStorage->getToken()->getUser();