/ /ユニークなフィールドのためのLaravel検証の書き方 - php、validation、laravel、laravel-4

ユニークなフィールドのためのLaravelの検証を書く方法 - php、validation、laravel、laravel-4

私はどのように徹底的なガイドを見つけることができないようですLaravelのユニークなフィールドを検証するため。以下のバリデーションルールの違いと、どれが間違っているか、または重複しているかについて詳しく説明してください。

1

$rules = ["email" => "email|unique:users"]

2

$rules = ["email" => "email|unique:users,email"]

3

$rules = ["email" => "email|unique:users,email,{$user->email}"]

4

$rules = ["email" => "email|unique:users,email,{$user->email},email"]

回答:

回答№1の場合は3

最初のものは単にユーザーを見ているだけです電子メールが一意であることを確認するための表。 2番目の引数として列を指定しなかったので、列名はキーと同じであると仮定します。 email.

2番目のものは単にemailカラムのためにどのカラムをチェックすべきかを宣言することです。この場合、emailカラムが email これはすでにLaravelが仮定しています。データベース内のあなたのemailカラムが以下のような名前だった場合 user_emailそれから、あなたは「パスしなければなりません」 user_email バリデーターに対して、どの列をEメールアドレスでチェックするかを知っているように

3番目のもの、あなたはのIDを渡すべきですそのEメールを持っているユーザー。これは、その電子メールがそのIDに設定されていない限り、その電子メールは一意であるべきであることをLaravelに伝えます。これは編集フォームに役立ちます。メールを持っているユーザーを編集している場合 test@test.com そしてあなたはそれを保存しようとします test@test.com テーブル内(編集しようとしているもの)。このようにして、あなたはそのユーザのIDを渡し、検証は成功するでしょう。

4つ目は、名前を宣言しているだけですプライマリID列の。ほとんどの場合、Laravelは主キー列がidと呼ばれると想定しているため、これは必須ではありません。何らかの理由でusersテーブルの主キーが user_idそれから、あなたは渡します user_id そのため、どの列のIDと一致するかがわかります。