gpt4 book ai didi

laravel - 在 Laravel 中返​​回 ResourceCollection 时如何返回 HTTP 状态码

转载 作者:行者123 更新时间:2023-12-04 10:41:59 28 4
gpt4 key购买 nike

我正在构建一个 API,我正在尝试为 Laravel 中的教室返回一个 ResourceCollection。

以前我使用了一个教室数组,并返回了一个包含数组和状态代码的响应,如下所示:

$classrooms=Classroom::all();
return response()->json($classrooms,200);

现在这是我的代码:
$classrooms = new ClassroomCollection(Classroom::paginate(10));
return $classrooms;

得到这个回应:
"data": [classrooms array],
"links": {
"first": "http://127.0.0.1:8000/api/classrooms ?page=1",
"last": "http://127.0.0.1:8000/api/classrooms ?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": null,
"last_page": 12,
"path": "http://127.0.0.1:8000/api/classrooms ",
"per_page": 10,
"to": null,
"total": 0
}

而且我找不到将状态代码与 ClassroomCollection 一起发送的方法,因为如果我这样做了
return response()->json($classrooms,200);

我只返回了“数据”对象,没有分页器的链接和元数据。

有什么帮助吗?

最佳答案

您可以像这样覆盖集合中的 withResponse 函数:

public function withResponse($request, $response)
{
if($response->getData()) {
$response->setStatusCode(200);
} else{
$response->setStatusCode(404);
}
parent::withResponse($request, $response);
}

关于laravel - 在 Laravel 中返​​回 ResourceCollection 时如何返回 HTTP 状态码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59881612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com