我想知道,如果在laravel中验证失败,将会发生什么,这意味着其余代码将被执行或不被执行。我在存储方法中有以下代码
$this->validate($request, [
'name' => 'required|min:3',
'email' => 'required|email',
'message' => 'required',
]);
return response()->json([
'success' => 'Your email has been sent successfully.'
]);
我已经检查过,$validator->fails())
但它不会返回我在if语句中添加的错误消息。
if($validator->fails()) {
return response()->json([
'error' => 'There are some errors.'
]);
}else{
return response()->json([
'success' => 'Your email has been sent successfully.'
]);
}
任何人都可以向我介绍我的问题,我很感激。谢谢你
验证失败后,您的情况不会引发任何异常。根据laravel官方文档:
validate方法接受传入的HTTP请求和一组验证规则。如果验证规则通过,您的代码将继续正常执行;否则,您的代码将继续无效。但是,如果验证失败,则会引发异常,并且适当的错误响应将自动发送回用户。对于传统的HTTP请求,将生成重定向响应,而将为AJAX请求发送JSON响应。
如果您不想使用ValidatesRequests特质的validate方法,则可以使用Validator外观手动创建一个Validator实例。外观上的make方法生成一个新的验证器
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
if ($validator->fails()) {
return redirect('post/create')
->withErrors($validator)
->withInput();
}
// Store the blog post...
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句