Laravel文件验证规则“必需”不起作用

时间:2017-09-06 13:58:34

标签: laravel validation laravel-5 laravel-5.5

所以标题说所有,其他规则如“mimes”都有效,但我可以在没有文件上传的情况下提交表单。当然我可以在HTML中使用“required”attr,但我不想。

Controller

$rules = [
    'img.*' => 'required|mimes:png,jpeg,jpg',
    ];

$customMessages = [
    'img.required' => 'Yo, what should I call you?',
    ];

$this->validate($request, $rules, $customMessages);

View

<div class="form-group{{ $errors->has('img.'.$i) ? ' has-error' : '' }}">

    <label for="img">File input</label>
    <input  type="file" class="form-control-file" id="img" value="{{old('img.'.$i)}}" name="img[]">
    <small class="text-danger">{{ $errors->first('img.'.$i) }}</small>

</div>

我有其他输入,但使用type="text"并且他们的"required"规则正常。 type="file"怎么了?找不到答案...

4 个答案:

答案 0 :(得分:0)

在您的初始表单标记中添加以下内容:

ENCTYPE = “多部分/格式数据”

并删除name =“img []” 使用name =“img”

答案 1 :(得分:0)

你应该试试这个:

<input  type="file" class="form-control-file" id="img" value="{{old('img.'.$i)}}" name="img[]" multiple>


$rules = [
        'img' => 'required',
        'img.*' => 'image|mimes:png,jpeg,jpg'
    ];

答案 2 :(得分:0)

public void ReturnJob(IJob job) { (job as IDisposable)?.Dispose(); }

Controller

$rules = [ 'img' => 'required', 'img.*' => 'image|mimes:png,jpeg,jpg', ]; $customMessages = [ 'img.required' => 'Yo, what should I call you?', ]; $this->validate($request, $rules, $customMessages);

form

答案 3 :(得分:0)

所以,问题出在我的div中的$iter输入type="file"它应该是这样的:

 <div class="form-group{{ $errors->has('img') ? ' has-error' : '' }}">
      <label for="img">File input</label>
      <input type="file" class="form-control-file" id="img" value="{{old('img')}}" name="img[]">
      <small class="text-danger">{{ $errors->first('img') }}</small>
 </div>

但是,在我删除我的变量mimes后停止工作:)

$rules = [
        'img' => 'required',
        'img.*' => 'image|mimes:png,jpeg,jpg'
    ];

$rules = [
        'img.*' => 'required|image|mimes:png,jpeg,jpg'
    ];