kaj*_*oop 3 php validation laravel
在我的RegisterControllerLaravel 中,我无法将错误返回到前端。我们的应用程序是作为 REST API 构建的,因此新用户的注册是通过 AJAX 发布到注册路由进行的。如果验证通过,则效果很好,但如果验证失败,则不会显示任何错误。它只是重定向到 Laravel 主页。我们没有使用 Blade 作为前端,因此不可能从 Blade 获取默认验证错误。前端是一个ReactJS客户端,通过AJAX调用与后端进行通信。
如何获取包含未通过验证的字段的 JSON 回前端?
protected function validator(array $data)
{
return Validator::make($data, [
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'birth_year' => 'required|integer|min:4',
'lat' => 'required|numeric',
'lon' => 'required|numeric',
]);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以通过将错误返回为 json 响应来解决它
$validator = Validator::make($data, [
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'birth_year' => 'required|integer|min:4',
'lat' => 'required|numeric',
'lon' => 'required|numeric',
]);
if ($validator->fails()) {
return response()->json($validator->messages(), 200);
}
Run Code Online (Sandbox Code Playgroud)