我可以覆盖验证请求中的某些属性来控制验证失败时会发生什么吗? (我不想在控制器中使用验证)
我有用户验证请求:
public function rules()
{
return [
'email' => 'required|email|max:255|unique:user',
'name' => 'required',
'password' => 'required|min:6',
'password_confirmation' => 'required|min:6|same:password'
];
}
当 AJAX 调用注册方法时,会发生这种情况:
public function postRegisterAjax(UserRegistrationValidationRequest $request)
{
...
return $this->responseJson($status, $msg);
}
我需要更新$msg
这样我就可以通过 JS 动态返回验证错误消息。
编辑:我的最终解决方案(在我的自定义表单请求中)
public function failedValidation(Validator $validator)
{
if ($validator->fails()) {
$status = Status::ERROR;
throw new HttpResponseException(response()->json(["response" => [
'msg' => $validator->errors()->all(':message'),
'status' => $status
]]));
}
return response()->json(["response" => [
'msg' => 'User successfully registered',
'status' => Status::SUCCESS
]]);
}
返回验证错误消息:
In Laravel 表单请求验证,如果验证失败,对于 AJAX 请求,将返回 JSON 响应。 JSON 响应包含所有验证错误。您可以在您的ajax
错误响应。
(转储您的错误响应,您可以在responseJSON
).
如果您想添加额外的逻辑/验证并将错误附加到您的error bag
, 您可以使用后验证钩子 https://laravel.com/docs/5.4/validation#after-validation-hook.
希望它能帮助你..
UPDATE
您可以覆盖laravel form request
的响应方法如下,
public function response(array $errors)
{
return response()->json(['status' => $status, "response" => $errors]);
}
在您的回复中,您将能够访问错误data.response
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)