Я обнаружил эту проблему "спасибо" исключению, которое я получил:
Catchable Fatal Error: Argument 3 passed to
Doctrine\ORM\Event\PreUpdateEventArgs::__construct()
must be an array, null given, called in
/.../vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php on line 804
and defined in
/.../vendor/doctrine/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php line 28
Я работаю над проектом, который требует определенной логики:
Когда поле order
в объекте book
изменено, мне нужно обновить поле books_order_modified_at
в родительском объекте bookstore
(это поле позволяет мне узнать, был ли изменен порядок книг в книжном магазине).
Я решил сделать это в прослушивателе событий, так как в коде есть много мест, которые могут изменить порядок книг.
Я не нашел способа обновить связанный объект из события preUpdate
, поэтому у меня есть приватное поле в классе слушателя, которое я использую, чтобы сообщить postUpdate
событию обновить соответствующий объект bookstore
.
Моя проблема в том, что когда я делаю так, событие preUpdate
объекта book
запускается.
Когда я проверяю набор изменений, он содержит только поле modified_at
, но имеет то же значение до и после.
Если у кого-то есть другая идея, как решить проблему - отлично.
Если нет - любая идея, как я могу предотвратить событие preUpdate
от запуска, когда флеш вызывается в теге postUpdate
event??