- バリデーションルールの定義:
まず、バリデーションルールを定義します。
unique
ルールを使用し、除外条件を追加します。具体的には、users
テーブルのemail
カラムを検証し、現在のユーザーのid
を除外します。
use Illuminate\Validation\Rule;
$rules = [
'email' => [
'required',
'email',
Rule::unique('users')->ignore($user->id),
],
];
上記の例では、$user
は現在のユーザーオブジェクトを表しています。
- バリデーションの実行:
次に、バリデーションを実行します。例えば、コントローラーの
store
メソッド内で以下のようにバリデーションを行います。
public function store(Request $request)
{
$user = Auth::user(); // 現在のユーザーオブジェクトを取得
$validatedData = $request->validate($rules);
// バリデーションを通過した場合の処理...
return redirect()->back()->with('success', '保存しました。');
}
上記の例では、$rules
には先ほど定義したバリデーションルールが含まれています。
これで、自身を除く一意のメールアドレスのバリデーションが実装されました。現在のユーザーのメールアドレスは一意である必要があり、他のユーザーと重複しないように確認されます。