电子邮件的Laravel验证规则

时间:2018-01-25 09:01:14

标签: php laravel

我不知道如何为电子邮件字段制作验证规则,不接受像Gmail,雅虎等电子邮件免费帐户。 任何人都可以指导我这个主题。提前致谢

3 个答案:

答案 0 :(得分:4)

将电子邮件提供商列表放入配置文件中,例如放入config/email.php

'banned_email_providers' => '@gmail\.com|@yahoo\.com'

然后使用此列表使用regex验证规则:

'email' => ['regex:/^((?!' . config('email.banned_email_providers') . ').)*$/'],

答案 1 :(得分:0)

您可以存储邮件站点的名称并查看其值为

的电子邮件
Users

答案 2 :(得分:0)

将此条目添加到\ config \ mail.php

'banned_servers' => ['yahoo.com', 'gmail.com']

然后

    $rules = [
        'email' => array('regex:/@(?!' . implode('|', array_map(function ($item){return str_replace('.', '\.', $item);}, config('mail.banned_servers'))) . ')/')
    ];

    $messages = ['email.regex' => 'Email accounts from '. implode(', ', config('mail.banned_servers')) . ' are not allowed'];

    $this->validate(Request::instance(), $rules, $messages);