web-dev-qa-db-ja.com

Laravelのメール検証ルール?

私は単純なルールを使用して電子メールの検証を行います:

'email' => 'required|email|unique:users,email',

入力した電子メールが原始と異なる場合にのみ機能するように、オプションuniqueを変更するにはどうすればよいですか?

サンプル:

フィールドemailには、テーブルusersからのデフォルト値が含まれます:[email protected]

次に、チェックするべきではないフォームに変更を加えずにボタンを押しますunique:users

それ以外の場合、[email protected]次を使用して着信値を検証する必要があります:unique:users

7
MisterPi

条件チェックを使用してこれを行いました:

 $validator = Validator::make($request->all(), []);

 $validator->sometimes('email', 'unique:users,email', function ($input) {
            return $input->email !== Auth::user()->email;
        });
3
MisterPi

ここに例を見つけることができます https://laracasts.com/discuss/channels/requests/laravel-5-validation-request-how-to-handle-validation-on-update

リクエスト方法(更新または作成)に応じて複数のルールが必要になります。また、ユーザー/メールを知っている場合に失敗しないように、3番目のパラメーターをuniqueに渡すことができます。

'user.email' => 'required|email|unique:users,email,'.$user->id,

メソッドの切り替え

switch($this->method())
{
    ...
}
7
Frank Provost