验证输入时遇到问题。除图像字段外,所有输入字段都通过验证过程。
这是我在html中的文件上传代码:
<div class="control-group">
<label class="control-label" for="fileInput"> Cover picture: </label>
<div class="controls">
{!! Form::file('cover') !!}
</div>
</div>
以及如何从控制器中的视图中获取数据:
$datas = array(
'name' => Input::get('name'),
'color' => Input::get('color'),
'size' => Input::get('size'),
'cover' => array('cover' => Input::file('cover'))
);
这是规则:
$rules = array(
'name' => 'required',
'color' => 'required',
'size' => 'required',
'cover' => 'required|mimes:jpeg,jpg,png|max:10000'
);
验证外墙的制作方法:
$validator = Validator::make($datas, $rules);
正如我前面提到的,所有验证规则都是为输入传递的,但对于图像,它给出了一个错误:
封面必须是以下类型的文件:jpeg,jpg,png。
现在,我该如何解决?
答案 0 :(得分:-1)
我认为你应该稍微改变一下......
如果你只是像这样创建你的函数..
// The Illumniate/Http/Request version of Request in laravel
public function yourFunction(Request $request){
....
$rules = ...;
$validator = Validator::make($request->all(), $rules);
}
Validator的预期格式会自动处理,因为它会返回它。当它贯穿时,你可以处理你已经拥有的一切。
因为这被接受了。使用上面的代码实际修复它的方法是删除多维数组,只需使用Input::file('cover')
,因为它自己返回一个数组。