【问题标题】:How can I validate array in laravel 5.3?如何在 laravel 5.3 中验证数组?
【发布时间】:2017-10-16 16:53:08
【问题描述】:

我的情况是这样的:

我的看法:

{!! 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' =&gt; 'required', 'photo.*' =&gt; 'mimes:jpeg,bmp,png,jpg|max:7024',

标签: php laravel upload laravel-5.3 required


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这样做。它会起作用的。

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

    【讨论】:

      【解决方案3】:

      对于 assoc 数组,如:

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

      对于 validate in DB 验证规则将是这样的:

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

      【讨论】:

        【解决方案4】:

        '照片' => '必需|数组', '照片.*' => 'mimes:jpeg,bmp,png,jpg|max:7024'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-19
          • 1970-01-01
          • 2017-08-05
          • 2017-10-11
          • 1970-01-01
          • 1970-01-01
          • 2017-05-10
          • 2017-07-04
          相关资源
          最近更新 更多