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();