取得した例外の「おかげで」この問題を検出しました。
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
か??