我的 Laravel 项目有很多控制器方法,它们只是不返回任何内容或void
成功返回。我希望(更准确地说是需要)这些方法最终204 No Content
向客户端返回响应。我想避免return response()->noContent()
在我需要的地方添加每个控制器方法。但是,如果我不这样做,Laravel 会向200 OK
客户端发送一个带有空正文的响应。
该方法Illuminate\Routing\Router::toResponse($request, $response)
对此负责。该参数$response
等于控制器方法的返回值。如果控制器方法不返回任何内容,则$response
等于null
。该方法toResponse($request, $response)
将参数$response
与不同的条件进行匹配,如果没有匹配项,则toResponse($request, $response)
创建一个SymfonyResponse
状态码为 200 和一个空正文。我想覆盖这个方法并添加另一个条件。如果$response === null
,那么toResponse($request, $response)
应该创建一个SymfonfyResponse
状态码为 204 的。
我的主要问题是我没有找到任何信息如何使框架调用我自己的路由器类实现。