Laravel电子邮件验证

时间:2018-12-03 00:11:44

标签: php laravel laravel-5 eloquent

如何验证电子邮件地址并使其唯一?我的问题是,当我保存但未输入电子邮件时,它仍将存储在我的电子邮件中

我的 验证请求

 $this->validate($request, [ 
        'email_ad' => 'required|email|unique:clients'
    ]);

4 个答案:

答案 0 :(得分:3)

您需要像这样在客户表中包括该列:

$this->validate($request, [ 
    'email_ad' => 'required|email|unique:clients,email'
]);

这告诉验证要检查哪一列

希望这会有所帮助

答案 1 :(得分:0)

这有助于您验证所有字段,包括带有自定义消息的电子邮件

 $messages = [
                    'same' => 'The passwords did not match'//customized message
                ];   
         $input = $request->validate([
                        'name' => 'required', //name validation
                        'email' => 'required|email|unique:users,email', //email validation
                        'phone' => 'required|unique:users|min:10|max:12|numeric', //Phone validation
                        'password' => 'required', //password validation
                        'c_password' => 'required|same:password', //confirm Password validation
                        'gender' => 'required', //field validation
                        'referral_code' => 'nullable',
                    ], $messages);

希望你能理解!

答案 2 :(得分:0)

有时,您可能希望在唯一检查期间忽略给定的ID。例如,考虑一个update profile屏幕,其中包括用户名,e-mail address和位置。当然,您将需要验证电子邮件地址为unique。但是,如果用户仅更改名称字段而不是电子邮件字段,则您不希望引发validation error,因为用户已经是电子邮件地址的所有者。

尝试使用这种方法

use Illuminate\Validation\Rule;

$this->validate($request, [
    'email_ad' => [
        'required',
        Rule::unique('clients')->ignore($client->id),
    ],
]);

答案 3 :(得分:0)

你好,这对我来说很有用

 'email' => ['required', 'email', 'max:255', Rule::unique('users')],