Php Laravel 5中的图像阵列验证
我的应用程序允许用户同时上传多个图像文件,但我不知道如何验证图像数组Php Laravel 5中的图像阵列验证,php,validation,laravel,laravel-5,Php,Validation,Laravel,Laravel 5,我的应用程序允许用户同时上传多个图像文件,但我不知道如何验证图像数组 $input = Request::all(); $rules = array( ... 'image' => 'required|image' ); $validator = Validator::make($input, $rules); if ($validator->fails()) { $messages = $val
$input = Request::all();
$rules = array(
...
'image' => 'required|image'
);
$validator = Validator::make($input, $rules);
if ($validator->fails()) {
$messages = $validator->messages();
return Redirect::to('venue-add')
->withErrors($messages);
} else { ...
如果我将验证规则更改为:
$rules = array(
...
'image' => 'required|array'
);
验证将通过,但阵列中的图像尚未验证
使用关键字each作为验证规则的前缀,但是这在Laravel4.2和Laravel5中似乎不起作用
我一直在尝试逐个迭代数组和验证每个图像,但是否有一个内置函数为我执行此操作?我使用了一种类似于Jeemusu建议的技术,在初始验证后,确保图像数组存在,使用第二个验证程序迭代数组,确保数组中的每个项目实际上都是图像。代码如下:
$input = Request::all();
$rules = array(
'name' => 'required',
'location' => 'required',
'capacity' => 'required',
'description' => 'required',
'image' => 'required|array'
);
$validator = Validator::make($input, $rules);
if ($validator->fails()) {
$messages = $validator->messages();
return Redirect::to('venue-add')
->withErrors($messages);
}
$imageRules = array(
'image' => 'image|max:2000'
);
foreach($input['image'] as $image)
{
$image = array('image' => $image);
$imageValidator = Validator::make($image, $imageRules);
if ($imageValidator->fails()) {
$messages = $imageValidator->messages();
return Redirect::to('venue-add')
->withErrors($messages);
}
}
这对我有用
$rules=数组(
...
'图像'=>'必需',
'image.*'=>'image | mimes:jpg,jpeg'
);代码>同意@Badmus Taofeeq答案,但它将接受带有任何值的图像字段,而不检查字段是否为数组。你需要添加一些小东西
有关正确的验证,请参阅下面的代码
$rules = array(
'image' => 'required|array',
'image.*' => 'image|mimes:jpg,jpeg'
);