Blog

Laravelでのバリデーションユニークチェック

8oです。今回はLaravelでのユニークチェックで新規登録ではなく更新する場合、現在登録中の内容は除外する方法を紹介します。

1. フォームリクエストクラスを作成

次のコマンドで簡単なフォームリクエストを作成します。

php artisan make:request UniqueRequest

2. フォームリクエストの編集

生成した空のフォームリクエストは

画像のようになっていてrulesのreturn内に書いていきます。

連想配列でルールを記入、login_idのユニークチェックを行います。

requiredは必須、max:30は30文字までという意味です。$uniqueに ユニークチェックの詳しい内容を書いていきます。

今回はuser_idが存在する(編集、更新)なら現在のlogin_idを除外してユニークチェックを行い、新規の場合は unique:ユニークチェックをしたいテーブル名,ユニークチェックをしたいカラム名 でユニークチェックを行います。

除外チェックの場合ですが

ユニークチェックをしたいテーブル名 :users

ユニークチェックをしたいカラム名 :login_id

ユニークチェックを除外したい値 : user のlogin_idの値

ユニークチェックを除外したいカラム名 : login_id

となります。

最後に

コントローラのメソッド で作成したリクエストフォームをセットするとセットしたバリデーションが行われます。

laravelのフォームリクエストでユニークチェックをするときよく忘れることなので参考になれば幸いです