Получить пользователя в Doctrine EventListener

когда я регистрирую новый объект Plasmid, я хочу дать ему автоматическое имя (например, p0001, p0002, p0003), чтобы сделать это, мне нужно выбрать в базе данных последний объект Plasmid для конкретного пользователя, получить его autoName и используйте это предыдущее имя, чтобы определить новое.

Но когда я вставляю token_storage в мой слушатель, токен становится пустым ... В контроллере у меня может быть пользователь, это работает.

The service.yml

    app.event_listener.plasmid:
    class: AppBundle\EventListener\PlasmidListener
    arguments: ["@security.token_storage"]
    tags:
        - { name: doctrine.event_listener, event: prePersist }

И, PlasmidListener

class PlasmidListener
{
private $user;

public function __construct(TokenStorage $tokenStorage)
{
    $this->user = $tokenStorage->getToken()->getUser();
}

public function prePersist(LifecycleEventArgs $args)
{
    $entity = $args->getEntity();

    // If the entity is not a Plasmid, return
    if (!$entity instanceof Plasmid) {
        return;
    }

    // Else, we have a Plasmid, get the entity manager
    $em = $args->getEntityManager();

    // Get the last plasmid Name
    $lastPlasmid = $em->getRepository('AppBundle:Plasmid')->findLastPlasmid($this->user);

    // Do something with the last plasmid in the database
}
}

Если кто-то знает, почему я могу получить фактического пользователя в Doctrine Listener?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос