Laravel:uniqueバリデーションで自分自身を対象外としたい
参考記事とほぼ同じ内容ですが、すぐ見返せるようまとめておきます。
記法
user
テーブルのemail
カラムを更新します。
フォームリクエストを用いると以下になります。
Request.php
public function rules()
{
return [
'id' => 'required|string|max_len:20|exists:user,id',
'email' => 'required|string|unique:user,email,' . $this->id . ',id',
];
}
単純なユニーク制約だと、更新前の自分自身を見つけてバリデーションエラーとなりますので、一緒に入力されたuser
テーブルの主キー(ここではid
)を用いて、除外対象を指定します。
所感
公式ドキュメントには、上記以外の記法も紹介されていますので、参考にしてください。