我的Controller中有2个方法,我需要验证它,但我不知道如何。
应该允许所有图片扩展的第一种方法:
public function testing(Request $request) {
if($request->hasFile('img')) {
$image = Input::file('img');
$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('images/' . $filename);
Image::make($image->getRealPath())->resize(200, 200)->save($path);
$file = $request->file('img');
return ['url' => url('images/' . $filename)];
}
}
第二种方法,只允许1个字,如果有空格,则将其修剪成1个字:
public function postDB(Request $request) {
$newName = $request->input('newName');
$websites = new Website();
$websites->name = $newName;
$websites->save();
return redirect('template')->with('status', 'Website has been saved successfully!');
}
答案 0 :(得分:2)
首先编写新的数据请求
php artisan make:request ImageRequest
写入 ImageRequest :
public function authorize()
{
return true;
}
public function rules()
{
return [
'img' => 'file|image',
]
}
如果您想自定义错误消息:
public function messages()
{
return [
'img.image' => 'Some custom message ...',
];
}
对您的方法的最后注入请求(不要忘记使用App \ Http \ Requests ):
public function testing(Requests\ImageRequest $request) {
//for retrieving validation errors use:
$imgErrors = $errors->first('img');
}
More information关于表单请求验证
或者你可以使用验证器门面(不要忘记使用验证器):
$validator = Validator::make(
$image, [
'img' => 'file|image',
]
);
More information关于关于可选字段的说明