uniqueバリデーションを拡張したい

Last-modified: Wed, 12 Sep 2018 17:08:20 JST (91d)

Laravelのuniqueバリデーションは、指定したテーブルの全レコードでユニークかチェックしています。
ですので、ユーザ単位でユニークにする。って制約を掛けたいときに困りましたのでメモ。

こんな感じで拡張できます。参考

        //バリデーションチェック
        //ユーザID単位でユニークにする。
        Validator::make($request->all(), [
            'category' => [
                                'required',
                                'string',
                                'max:255',
                                Rule::unique('categories')->where(function($query){
                return $query->where('user_id',Auth::user()->id);
            })],
        ])->validate();

Counter: 40, today: 1, yesterday: 0

このページの参照回数は、40です。