Php Laravel:电子邮件验证

Php Laravel:电子邮件验证,php,regex,laravel,email-validation,laravel-6,Php,Regex,Laravel,Email Validation,Laravel 6,我不知道如何为电子邮件字段制定验证规则。 我想接受不是来自服务器的邮件id,当有人注册时,说“@myemail.com,@yahoo.com,@outlook.com”。如果提供了此邮件地址,则会显示您的邮件id无效。我该怎么办 请帮帮我,这是我的ResigterController.php protected function validator(array $data) { return Validator::make($data, [ 'name' => ['

我不知道如何为电子邮件字段制定验证规则。 我想接受不是来自服务器的邮件id,当有人注册时,说“@myemail.com,@yahoo.com,@outlook.com”。如果提供了此邮件地址,则会显示您的邮件id无效。我该怎么办

请帮帮我,这是我的ResigterController.php

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'mobile_no' => ['required', 'string', 'min:10'],
        'company' => ['required', 'string', 'max:255'],
        'username' => ['required', 'string', 'max:255', 'unique:users'],

    ]);
}


我的配置目录中没有email.php。

您可以在上面添加正则表达式验证

$rules=[
'name'=>['required'、'string'、'max:255'],
“电子邮件”=>[
“必需”,
'字符串',
“电子邮件”,
“最大值:255”,
“唯一:用户”,
'正则表达式:/^\w+[-\.\w]*@(?(?:outlook | myemail | yahoo)\.com$)\w+[-\.\w]*.\w{2,4}$/'
],
“密码”=>[“必需”、“字符串”、“最小值:8”、“已确认”],
'mobile_no'=>['required','string','min:10'],
“公司”=>[“必需”、“字符串”、“最大值:255”],
“用户名”=>[“必需”、“字符串”、“最大值:255”、“唯一值:用户”],
];
//在电子邮件字段中添加用于正则表达式验证的自定义消息。
$messages=[
'email.regex'=>'我们不接受此域的邮件。'
];
验证器::make($data、$rules、$messages);
我把正则表达式改编自。正则表达式应该按照以下规则工作


另一个选择是制定自己的验证规则。请参阅。

请将代码作为文本而不是图像发布。您有一个mail.php文件。是的,我有。请给我举个例子。还有一件事我正在使用laravel 6 mail.php文件与验证规则无关。工作正常;)非常感谢。我想你错过了$messages列表后面的分号?我说得对吗?
\w{2,4}
因为TLD是错误的,它接受
1\u b
,但不接受
博物馆
。请看一下这些网站:@托托,但它正在工作,对不起,我没有得到you@Toto完全披露:我不知道这是如何或为什么起作用的。我只是根据另一个答案改编了一个正则表达式,恰好符合OP的要求。