php - Laravel 8.x 在抛出 NotFoundHttpException 时返回状态码 200 而不是 404
问题描述
从 7.x 升级到 Laravel 8.9 后,Laravel 在请求不存在的模型时返回错误的状态码。响应正文本身包含预期的错误响应,但状态代码为 200。以下是相应的控制器代码:
public function findOne($eventId)
{
$event = Event::withMailRecords()->withContacts()->withContingents()->findOrFail($eventId);
return new EventResource($event);
}
我只在使用启动服务器时得到错误的状态代码php artisan serve
,然后执行我们的前端测试来查询服务器。在我们的 Laravel HTTP 测试中,一切正常。此外,该问题仅出现在我们的 bitbucket ci 管道中。即使在我们的管道映像中执行测试,本地一切正常。
我看不到任何可能导致这种行为的环境差异。
解决方案
也许这不是您的问题的根源,但是您确定在任何“<?php”标记之前没有空格,或者您没有使用像 UTF8 这样的编码和 BOM 已经发送标头?
推荐阅读
- prolog - 使用序言的运行长度编码
- c++ - asio set_password_callback() 方法是什么?
- ios - react-native run-ios 构建失败:CompileC RCTBaseTextInputView.o
- scala - Scala 测试错误:@Rule 必须是公开的
- r - == 给出奇怪的结果 R
- sharepoint - 使用 CSOM 在 Sharepoint 2019 上查询项目权限
- angular - Angular 无法将结果转换为对象 - 是 IActionResult 吗?
- excel - 将命名范围值分配给变量(Excel VBA) - 新手
- c++ - 手动编译 GLFW “未选择支持的窗口创建 API”
- angular - 异步管道的Angular 9过滤结果