Laravel 5 & 在单个字段中验证多个电子邮件地址

Posted

技术标签:

【中文标题】Laravel 5 & 在单个字段中验证多个电子邮件地址【英文标题】:Laravel 5 & validating multiple email addresses in a single field 【发布时间】:2017-01-31 05:27:54 【问题描述】:

我知道在 Laravel 中你可以为输入字段设置验证规则,例如:

    $return =  [
        'first_name' => 'required|max:300|min:3',
        'last_name' => 'required|max:300|min:3',
        'email' => 'required|email,
    ];

有没有一种方法可以轻松地为带有逗号分隔的电子邮件地址 (test@email.com, wibble@test.com) 的单个字段设置这种验证,还是我需要通过将它们分开并单独检查每个电子邮件地址来手动验证这些?

【问题讨论】:

没有内置的方法可以做到这一点。您可以 (1) 更改表单以返回电子邮件数组而不是逗号分隔的电子邮件列表,然后使用 array validation (2) create a custom validation rule 或 (3) 只需使用 filter_var($var, FILTER_VALIDATE_EMAIL) 手动执行(其中 $var 是CSV 中的每封电子邮件)。 【参考方案1】:

这可能是您正在寻找的:

$rules = array(
            'email_addresses' => 'required',
            'email_addresses.*' => 'email'
        );

$messages = array(
            'email_addresses.required' => 'Email Addresses Required',
            'email_addresses.email' => ''
        );

【讨论】:

以上是关于Laravel 5 & 在单个字段中验证多个电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 验证单个输入字段

在 laravel 多身份验证中为单个守卫自定义登录凭据

单个输入字段的Laravel验证

如何在laravel中进行多字段唯一验证?

在 Laravel 5 中验证动态添加的输入字段

Laravel 5.6 空字段验证