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'
);