使用Laravelvalidation从Excel文件validation数组

您好我不知道是否有可能在laravelvalidation这样的数组:

Array ( [0] => John [1] => 20 [2] => john@example.com ) 

因为我从Excel文件中获取数据。 我想validation[1] => numeric[2] => email

谢谢。

您需要创build一个如下的自定义validation。

 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(); }); 

您可以创buildValidatorServiceProvider,并且可以将这些行添加到ValidatorServiceProvider的引导方法中。 然后你需要在config / app.php中将Provider添加到你的提供者数组中。

 App\Providers\ValidatorServiceProvider::class, 

或者您只需将它们添加到控制器的操作顶部。

最后你可以在你的validation规则中使用它。

 $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之后的所有内容都是一个参数,我们使用它们作为数组元素的特定规则。