Я обнаружил эту проблему «благодаря» полученному исключению:
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
??