Php laravel中数组验证下的验证

Php laravel中数组验证下的验证,php,laravel,laravel-5,Php,Laravel,Laravel 5,如果我有一个数组验证规则,如何检查数组中的所有项目是否都是有效的电子邮件?我使用:作为数组验证规则 $this->validate($request, [ 'email' => 'required|array.email' ]); 注意:我使用的是Laravel5.1版本 根据要求更新 检查是否有效: 高于5.2 或 小于5.2 您需要自定义验证器。在Laravel请求中,你可以做类似的事情 public function __construct() { Valid

如果我有一个数组验证规则,如何检查数组中的所有项目是否都是有效的电子邮件?我使用:作为数组验证规则

$this->validate($request, [
    'email' => 'required|array.email'
]);
注意:我使用的是Laravel5.1版本

根据要求更新

检查是否有效:

高于5.2

小于5.2


您需要自定义验证器。在Laravel请求中,你可以做类似的事情

public function __construct() {
    Validator::extend("emails", function($attribute, $value, $parameters) {
        $rules = [
            'email' => 'required|email',
        ];
        foreach ($value as $email) {
            $data = [
                'email' => $email
            ];
            $validator = Validator::make($data, $rules);
            if ($validator->fails()) {
                return false;
            }
        }
        return true;
    });
}

public function rules() {
    return [
        'email' => 'required|emails'
    ];
}

验证阵列laravel 5.2及以后版本:

验证数组表单输入字段不一定是件痛苦的事。例如,要验证给定数组输入字段中的每封电子邮件是否唯一,可以执行以下操作:

$validator = Validator::make($request->all(), [
    'person.*.email' => 'email|unique:users',
    'person.*.first_name' => 'required_with:person.*.last_name',
]);
同样,在语言文件中指定验证消息时,可以使用*字符,这样就可以轻松地为基于数组的字段使用单个验证消息:

'custom' => [
    'person.*.email' => [
        'unique' => 'Each person must have a unique e-mail address',
    ]
],

希望这对你有帮助

我认为这行不通。我使用的是Laravel5.1版本。@Jonjie你测试过了吗?很好。您还可以包括
$validator->each('email'、'required | email')的链接吗?|这个很好用。好的,还有一件事。如何自定义电子邮件验证规则的邮件?
$validator = Validator::make($request->all(), [
    'person.*.email' => 'email|unique:users',
    'person.*.first_name' => 'required_with:person.*.last_name',
]);
'custom' => [
    'person.*.email' => [
        'unique' => 'Each person must have a unique e-mail address',
    ]
],