Я создал событие так:Доктрина событие post_persist
service.yml
AccountManager:
class: %AccountManager.class%
tags:
- { name: doctrine.event_listener, event: postPersist }
мой подписчик
class AccountManager implements EventSubscriber
{
public function getSubscribedEvents()
{
return array(
'postPersist',
'postUpdate',
);
}
public function postUpdate(LifecycleEventArgs $args)
{
$this->index($args);
}
public function postPersist(LifecycleEventArgs $args)
{
$this->index($args);
}
public function index(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
$entityManager = $args->getEntityManager(); //BREAKPOINT
if ($entity instanceof User) {
echo $entity;
}
}
}
Если я вижу свой код, где я добавил точку останова, $entityManager = $args->getEntityManager();
я дону» t найти нового пользователя в моей базе данных. В конце концов, у меня новый пользователь в базе данных.
Из документации доктрины, я могу читать
postPersist - Событие postPersist происходит для объекта после того, как объект был достигнут упорным. Он будет вызываться после базы данных операций вставки. Сгенерированные значения первичного ключа доступны в событии postPersist .
Мои вопросы
- Почему у меня нет нового пользователя в моей базе данных во время моего события?
- Я не понимаю основную разницу между слушателем/подписчиком. В этом случае, что лучше?
Perfect Crozin! это то, что я искал – Twinsen