Laravel:电子邮件的自定义验证

时间:2017-01-30 09:56:09

标签: laravel email laravel-5.3

我想接受来自一个服务器的邮件ID' @ myemail.com'当有人注册时如果给出任何其他邮件地址,它将说明您的邮件ID无效。我该怎么办?

   protected function validator(array $data)
  {
    return Validator::make($data, [
        'name' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|min:6|confirmed',
        /*'usertype' => 'required',*/
     ]);
  }

它是我的注册控制器的验证器

4 个答案:

答案 0 :(得分:5)

您可以使用正则表达式模式。将此附加到您的电子邮件验证:

new SWPrecacheWebpackPlugin({
      cacheId: 'example-app',
      filename: 'sw.js',
      // minify: true,
      runtimeCaching: [{
        urlPattern: '/',
        handler: 'cacheFirst',
      }],
      dynamicUrlToDependencies: {
        '/': ['./server/views/index.ejs'],
      },
    }),

修改
对于多个域,您必须使用带有验证的数组,因为两个邮件域之间存在管道:

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|max:255',
        'email' => 'required|email|max:255|regex:/(.*)@myemail\.com/i|unique:users',
        'password' => 'required|min:6|confirmed',
        /*'usertype' => 'required',*/
     ]);
}
  

注意:使用正则表达式模式时,可能需要在数组中指定规则而不是使用管道分隔符,尤其是在正则表达式包含管道符时。

答案 1 :(得分:2)

请在电子邮件验证行中进行以下更改。您可以在验证器规则中扩展电子邮件验证,如:

{{1}}

答案 2 :(得分:0)

您也可以对应用服务提供商的启动方法进行一些更改。

Create custom validation rule - click here

答案 3 :(得分:0)

自laravel 5.8.17 起,添加了ends_with验证规则,如下所示:

$rules = [
    'email' => 'required|ends_with:laravel.com,jasonmccreary.me,gmail.com',
];