根据laravel5.8文档中验证器的介绍https://learnku.com/docs/laravel/5.8/validation/3899#custom-error-messages,用ajax提交表单时,使用验证器,文档中的介绍是:
其中文档中的给的例子是:
/**
* 保存一篇新的博客文章。
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// 博客文章验证通过
}
但实际中我直接用$request->validate时,报错,内容是找不到validate 这个方法。于是采用 Validator::make()方法验证,但并没有返回json数据,在此po一下解决方法:
public function profile(Request $request){
if($request->isMethod('post')){
//接收json串
$data = $request->getContent();
//转化为数组
$data = json_decode($data,true);
//……
//数据校验
$validator = Validator::make($data, [
//需要校验的字段
]
],$this->profile_messages()//校验信息方法);
//如果校验过程中有错误
if ($validator->fails()) {
//返回json数据
return response()->json(['code'=>"201","msg"=>$validator->errors()->first()]);
}
//其他操作
}
}