如何在laravel 5.3中验证数组?

时间:2017-05-17 09:46:42

标签: php laravel upload laravel-5.3 required

我的情况是这样的:

我的观点:

{!! 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',
        ];
    }
}

当名称是数组时,它不起作用

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

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

这样做。它会起作用。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

'photo'=&gt; “所需|阵列”, 'photo。*'=&gt; '默剧:JPEG,BMP,PNG,JPG |最大值:7024'

答案 3 :(得分:0)

对于assoc数组,如:

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

对于DB验证中的验证规则将如下:

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