如何验证 laravel 5.3 中的数组?

How can I validate array in laravel 5.3?

我的情况是这样的:

我的看法:

{!! Form::open(['url' => 'product/store', 'class'=>'form-horizontal', 'method'=>'POST', 'files' => true]) !!}
    ...
    <input type="file" class="form-control" name="photo[]" multiple>
    ...
{!! Form::close() !!}

我的控制器:

public function store(CreateProductRequest $request)
{
    dd($request->all());
    ...
}

我这里设置为必填:

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CreateProductRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'name'=>'required',
            ...
            'photo[]'=> 'required|mimes:jpeg,bmp,png,jpg|max:7024',
        ];
    }
}

名称为数组时,无效

当我点击提交时,它会返回表单添加

我该如何解决这个问题?

'photo' => 'required|array', 'photo.*' => 'mimes:jpeg,bmp,png,jpg|max:7024'

对于像这样的关联数组:

$skills = [['id'=> 1, 'name' => 'photoshoot', photo => File], ['id'=>2, 'name'=> 'someskill', photo => File]];

对于数据库验证规则中的验证将是这样的:

'skills.*.id' => 'required|exists:skills,id',
'skills.*.photo' => 'required|mimes:jpeg,bmp,png,jpg|max:7024'

这样做。它会起作用。

'photo.*' => 'required|mimes:jpeg,bmp,png,jpg|max:7024'

如果您正在验证数组表单字段,您可以使用 * 字符检索每个数组元素的所有消息:

'photo.*' => 'required|mimes:jpeg,bmp,png,jpg|max:7024'