我正在使用Laravel
,我想要请求引发的错误的JSON响应。
例如,在注册时使用重复的电子邮件地址返回:
{
"email": [
"The email has already been taken."
]
}
但我希望答案是这样的:
{
"success": false,
"errors": [ 'errors' ]
}
提前致谢。
答案 0 :(得分:0)
$validator = Validator::make($input);
if (!$validator->fails()) {
$responseMessage['success'] = true;
} else {
$responseMessage['success'] = false;
$responseMessage['error'] = $validator->errors();
}
return responseMessage;
答案 1 :(得分:0)
如果您使用验证器,请执行此操作 -
$validator = Validator::make($input, $rules);
if ($validator->fails()) {
$error = array_flatten($validator->messages()->toArray());
$response['response'] = [
"success" => false,
"error" => $error
];
return $response;
}
希望这对你有用。
答案 2 :(得分:0)
要返回json错误,请使用:
$message = 'Self defined error message';
return response()->json([['error' => $message]], 400);
400是您想要返回的http状态代码,可以是您想要的任何内容。在这种情况下,您可能希望返回400(错误请求)。
上述代码的输出:
[
{
"error":"Self defined error message"
}
]
答案 3 :(得分:0)
$messages = [
'email.unique' => $request->email . " has been used",
];
$validator = Validator::make($request->email, [
'email' => 'required|max:255|email|unique:users'
], $messages);
if ($validator->fails()) {
return response()->json($validator->messages(), 200);
希望这可以帮助你:)