タイトル: 一意チェック
SEOタイトル: Laravelのuniqueバリデーション
Laravelで「同じ値がまだ登録されていないこと」を確認したいときは、unique ルールを使います。
メールアドレスやユーザーIDのように、一意であるべき項目のチェックで使います。
基本形
'name' => 'unique:test_table,colA'
更新時の注意点
既存データの更新では、自分自身の値まで重複扱いされることがあります。その場合は現在のIDを除外します。
use Illuminate\Validation\Rule;
'user_id' => [
'required',
Rule::unique('users')->ignore($user->id),
]
使う場面
- ユーザーIDやメールアドレスの重複防止
- 一意制約をアプリ側でも先に確認したいとき
- 登録と更新でルールを分けたいとき