слушатель в котором
public function preUpdate(Container $container, PreUpdateEventArgs $args): void
{
// если статус был изменен и новый статус "Выдан"
if ($args->hasChangedField('status') && $args->getNewValue('status')->getId() == Status::ISSUED) {
// тут логика
}
}
В общем логика простая, отправляется на почту сообщение. Но проблема в том, что тогда сам статус не обновляется, а остаётся старым. Я что-то упускаю?
я бы не ложил любую логику в preUpdate prePersist... потом и вызыввать не хочеш - а оно постоянно тригерится
я уже понял, что нельзя сделать ->flush внутри preUpdate, ток чёт не понял в чём прикол
Суть в чём, что это нужно выполнять всегда, априори. Но при этом не кайф в куче мест отдельно всё это вызывать
событие сущности всегда будет вызываться только в том случае, если с uow были изменения этой сущности, на которой висит листенер, всю логику, которая у тебя должна присутствовать в слушателе preUpdate - вынеси в отдельный сервис, и вызывай именно сервис при возникновении условия
Да мне нужно всего два слушателя)))
Обсуждают сегодня