我发出了以下自定义请求。
class CustomRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
$rule['name']='required';
$rule['email'] = 'required|email';
return $rule;
}
}
如何在ajax中返回验证错误?当我不使用自定义请求时,我返回了这样的错误。
public function store(Request $request)
{
$validation = Validator::make($request->all(), [
'name'=>'required',
'email'=>'required|email'
]
if($validation->fails())
{
return response()->json([$errors=>$validation->errors()]);
}
return response()->json(['status'=>'success']);
}
所以这里不是Request
,如果我使用CustomRequest
,那么我们如何捕获错误?
另一件事。在自定义请求规则中,如何获取请求输入值?
public function rules()
{
$rule['name']='required';
if($this->input('phone')) {
$rule['phone'] = 'integer';
}
$rule['email'] = 'required|email';
return $rule;
}
$ this-> input('phone')对吗?希望给我回答我的两个问题。
错误将在您的error
回调函数中或在catch
回调中,取决于您进行ajax
调用的方式。
例如
$.ajax({
url: "/test",
type: "post",
data: {foo:'test'} ,
success: function (response) {
console.log(response);
},
error: function(jqXHR, textStatus, errorThrown) {
var data = jqXHR.responseJSON;
console.log(data.errors);// this will be the error bag.
}
对于FormRequest
,我认为您的代码不正确
public function rules()
{
return [
'title' => 'required',
'body' => 'required',
];
}
这将进行验证。