Php 拉威尔5.5。验证请求重定向/响应
我是否可以覆盖验证请求中的某些属性以控制验证失败时发生的情况?(我不想在控制器中使用验证) 我有用户验证请求:Php 拉威尔5.5。验证请求重定向/响应,php,ajax,laravel,validation,Php,Ajax,Laravel,Validation,我是否可以覆盖验证请求中的某些属性以控制验证失败时发生的情况?(我不想在控制器中使用验证) 我有用户验证请求: public function rules() { return [ 'email' => 'required|email|max:255|unique:user', 'name' => 'required', 'password'
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调用register方法时,会发生以下情况:
public function postRegisterAjax(UserRegistrationValidationRequest $request)
{
...
return $this->responseJson($status, $msg);
}
我需要以某种方式更新$msg
,以便通过JS动态返回验证错误消息
编辑:我的最终解决方案(在我的自定义表单请求中)
更新:
public function postRegisterAjax(UserRegistrationValidationRequest $request)
{
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$msg = $validator->errors();
return $this->responseJson($status, $msg);
}
}
要返回验证错误消息,请执行以下操作:
在Laravel表单请求验证中,如果验证失败,在AJAX请求的情况下,将返回JSON响应。JSON响应包含所有验证错误。您可以在ajax
错误响应中访问它们。
(转储错误响应,您可以在responseJSON
中看到它们)
如果您想添加额外的逻辑/验证并将错误附加到错误包
,您可以使用
希望对你有帮助
更新
您可以覆盖laravel表单请求的响应方法,如下所示:
public function response(array $errors)
{
return response()->json(['status' => $status, "response" => $errors]);
}
在您的回复中,您将能够以数据的形式访问错误。回复
这不是我的问题。消息永远不会被发送到ajax,因为在我能够返回json响应之前验证失败,并且从哪里获得$data和$rules?你的意思是$request->all()和$this->rules()是的,这不能工作,因为在你输入函数之前验证器就失败了。有没有可能修改它,以代替responseJSON
我取回response
属性?如果我理解你是正确的,您可以通过response.responeJSON
访问所需的响应
。我可以使用数据访问它。responseJSON
(与您编写的内容相同,具体取决于您在函数参数中传递的内容),但我希望使用数据.response
。我的意思是,如果可以将responseJSON
改为response
,答案将更新。希望这是你想要的。相关:这正是我所需要的<代码>失败验证()
而不是Laravel 5.5中的响应()
public function response(array $errors)
{
return response()->json(['status' => $status, "response" => $errors]);
}