Laravel 文件验证规则 "Required" 无效
Laravel File validation rule "Required" not working
所以标题说明了一切,其他规则如 "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"
有什么问题吗?找不到答案...
在您的开始表单标签中添加:
enctype="multipart/form-data"
并删除名称="img[]"
使用名称 ="img"
你应该试试这个:
<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'
];
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>
所以,问题出在我的 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'
];
所以标题说明了一切,其他规则如 "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"
有什么问题吗?找不到答案...
在您的开始表单标签中添加:
enctype="multipart/form-data"
并删除名称="img[]" 使用名称 ="img"
你应该试试这个:
<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'
];
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>
所以,问题出在我的 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'
];