コントローラー メソッドがあり、User
エンティティとの関係を持つエンティティ Order
の挿入メソッドを作成しています。1 人のユーザーが複数の注文を持つことができます。オーダーを作成してユーザーをそれに設定します。変更しないと Doctrine がユーザーを更新しようとします。何が間違っているのか疑問に思っています。
私のコントローラーの方法
私のユーザーエンティティ
リーリーと私の注文エンティティ
リーリー そこで、注文を保存しようとしました。その後、上で保存した注文である注文 ID を使用して注文項目を保存しますが、失敗して制約エラーが発生します。 クエリの実行中に例外が発生しました: SQLSTATE[ 23000]: 整合性制約違反: 1048 列「ロール」を空にすることはできません
デバッグ後、ここのドクトリンがユーザーを更新しようとしていることがわかりましたが、ユーザーに何も変更を加えていないのに、なぜ更新する必要があるのでしょうか?
P粉5461383442024-04-04 11:12:20
さて、答えを見つけた後、この質問に答えるのを忘れていました。User エンティティに見られるように、Erase Credentials メソッドがあります
リーリー誤解がありました。API リクエストでユーザーを返す前にこのメソッドを呼び出していましたが、更新前にも呼び出されているので注意してください