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

Validate an array from excel file using Laravel validation

您好,我想知道是否可以在 laravel:

中验证这样的数组
Array
(
    [0] => John
    [1] => 20
    [2] => john@example.com
)

因为我正在从 excel 文件中获取数据。我想验证 [1] => numeric[2] => email.

谢谢。

您需要像下面这样创建自定义验证。

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 的引导方法中。然后您需要将 Provider 添加到 config/app.php.

中的 providers 数组
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_array 之后用逗号分隔的所有内容都是参数,我们将它们用于数组元素的特定规则。