2

所以标题说明了一切,“哑剧”等其他规则是有效的,但我可以在不上传文件的情况下提交表单。当然,我可以在 HTML 中使用“必需”属性,但我不想这样做。

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

4 回答 4

3

在您的打开表单标签中,您添加了以下内容:

enctype="多部分/表单数据"

并删除 name="img[]" 使用 name ="img"

于 2017-09-06T14:04:11.357 回答
1

你应该试试这个:

<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'
    ];
于 2017-09-06T14:13:44.307 回答
0

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

<form action="...." method="post" enctype="multipart/form-data">
.
.
.
.

    <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>
于 2017-09-06T14:56:16.060 回答
0

因此,问题出$iter在我的 div 中以供输入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'
    ];
于 2017-09-07T07:30:06.587 回答