Laravel自定义响应json



我开发了一个有用的响应结果。但是它没有返回我想要的结果,所以我不能得到errorMessage"部分。

下面是我的代码:ResponseResult.php

namespace AppHelpers;
class ResponseResult
{
public static function generate(bool $success = true, $message = null, int $errorCode = 200) : object
{
if ($success) {
return response()->json(['success' => $success, 'message' => $message], $errorCode);
} else {
return response()->json(['success' => $success, 'errorMessage' => $message, 'errorCode' => $errorCode],$errorCode);
}
}
}

ExampleController

$validate = Validator::make($request->all(), [
'name' => 'required',
'lastname' => 'required',
]);
if ($validate->fails()) {
return ResponseResult::generate(false,$validate->messages(),ResponseCodes::HTTP_BAD_REQUEST);
}

网络输出:

{success: false, errorMessage: {name: ["Name field is required."], lastname: ["lastname field is required."]},…}
errorCode: 404
errorMessage: {name: ["Name field is required."], lastname: ["lastname field is required."]}
success: false

我不能打印任何错误,当我试图得到它作为ErrorMessage。有人能帮忙吗?

result.errorMessage.forEach(function (data) {
$('#ajaxFails ul').append('<li>' + data + '</li>');
});

提前谢谢。

如果您将console.log(result),您很可能会看到您返回的数据嵌入到data属性。因此,显示错误消息的正确方法是:

result.data.errorMessage.forEach(function (data) {
$('#ajaxFails ul').append('<li>' + data + '</li>');
});

但又……这完全取决于你如何构建你的数据响应。

我返回验证错误如下:

$validate = Validator::make($request->all(), [
'name' => 'required',
'lastname' => 'required',
]);
if ($validate->fails()) {
$error = $validator->errors();
return response()->json([
'responseCode' => app('IlluminateHttpResponse')->status(),
'error' => $error,
'success' => false,
'message'=>'',
]);
}

希望这对你有帮助😐😐😐