Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Laravel验证从excel文件验证数组_Php_Excel_Laravel_Validation_Laravel Validation - Fatal编程技术网

Php 使用Laravel验证从excel文件验证数组

Php 使用Laravel验证从excel文件验证数组,php,excel,laravel,validation,laravel-validation,Php,Excel,Laravel,Validation,Laravel Validation,您好,我想知道是否可以在laravel中验证这样的阵列: Array ( [0] => John [1] => 20 [2] => john@example.com ) 因为我从excel文件中获取数据。我想验证[1]=>数字和[2]=>电子邮件 谢谢。您需要创建如下自定义验证 Validator::extend('check_my_array', function ($attribute, $value, $parameters, $validato

您好,我想知道是否可以在laravel中验证这样的阵列:

Array
(
    [0] => John
    [1] => 20
    [2] => john@example.com
)
因为我从excel文件中获取数据。我想验证
[1]=>数字
[2]=>电子邮件


谢谢。

您需要创建如下自定义验证

Validator::extend('check_my_array', function ($attribute, $value, $parameters, $validator) {
    $validation = [];
    foreach($parameters as $parameter)
        $validation[] = "required|{$parameter}";

    $validator = Validator::make($value, $validation);
    return !$validator->fails();
});
您可以创建ValidatorServiceProvider,并将这些行添加到ValidatorServiceProvider的引导方法中。然后,您需要将提供者添加到config/app.php中的提供者数组中

App\Providers\ValidatorServiceProvider::class,
或者您只需将它们添加到控制器操作的顶部

最后,您可以在验证规则中这样使用它

$validator = Validator::make(
  ['array' => ['John', 'asd', 'john@example.com']],
  ['array' => 'check_my_array:,numeric,email']
);

if ($validator->fails())
   dd('fail');
else dd('success');
注意:check_my_数组后面用逗号分隔的所有内容都是一个参数,我们使用它们作为数组元素的特定规则