取得した例外の「おかげで」この問題を検出しました。
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_atbookstore
本の順序を変更する可能性のあるコードの場所がたくさんあるので、イベント リスナーで行うことにしました。
イベントから関連エンティティを更新する方法が見つからなかったので、関連エンティティを更新するようにイベントpreUpdateに指示するために使用するリスナー クラスにプライベート フィールドがあります。postUpdatebookstore
私の問題は、そうするとエンティティのpreUpdateイベントが発生することです。
変更セットを確認すると、フィールドのみが含まれていますが、前後で同じ値になっています。bookmodified_at
誰かが問題を解決する別のアイデアを持っている場合 - 素晴らしい。
preUpdateそうでない場合-イベントでフラッシュが呼び出されたときにイベントが発生しないようにするにはどうすればよいですpostUpdateか??