とあるLaravelのプロジェクトにおいてユーザーデータを更新する際FormRequestでバリデーションをするようにしていたのだが、メールアドレスを変更せず他のデータを更新しようとした場合、自分自身のメールアドレスがuniqueに引っかかってしまい更新できなかった。
たかがメールアドレス1つのために別のバリデートロジック書くのも面倒だなと思ったところ、公式ドキュメントに以下のような対応策が書かれていた。
Validator::make($data, [ 'email' => [ 'required', // 該当の項目ではなくキー項目を渡す!! Rule::unique('users')->ignore($user->id), ], ]);
参考: