Return 响应 201 在控制器中创建。 Laravel

Return Response 201 Created in controller. Laravel

如何return回复201 - Created

我知道这个解决方案。

public function store(Request $request): \Illuminate\Http\Response
{
    return response()->noContent(201);
});

但是很长。

有没有更短的路?

我不会使用幻数

use Symfony\Component\HttpFoundation\Response;

...

public function store(Request $request): \Illuminate\Http\Response
{
    return response()->noContent(Response::HTTP_CREATED);
});

ResponseFactory 是可宏化的。如果您愿意,可以向其中添加自定义函数:

\Illuminate\Routing\ResponseFactory::macro('created', function () {
    return $this->noContent(201);
});

然后你可以在ResponseFactory上调用它:

return response()->created();

Laravel 6.x Docs - Responses - Response Macros macro