![](/img/trans.png)
[英]How To Return a Http Response Status Code in Laravel response()->download()?
[英]Laravel - How to set HTTP response status code from Controller
我是 laravel 的新手,我成功地將用戶從控制器引導到適當的視圖,但在某些情況下,我想設置一個 http 狀態代碼,但無論我發送什么,它總是返回200
的響應代碼。
這是我的測試控制器功能的代碼:
public function index()
{
$data=array();
return response()->view('layouts.default', $data, 201);
}
如果我在路由中使用相同的代碼,它將返回正確的 http 狀態代碼,正如我在命令行中使用 curl -I 調用頁面時看到的那樣。
curl -I http://localhost/
它在控制器中不起作用,但在路由調用中起作用有什么原因嗎?
我敢肯定,作為新手,我只是誤解了一些東西,但即使是以下代碼也能在路由中運行,但不能在控制器中運行:
public function index()
{
abort(404);
}
我做錯了什么?
您可以使用這里提到的內容。 您將需要返回這樣的響應:
public function index()
{
$data = ['your', 'data'];
return response()->view('layouts.default', $data)->setStatusCode(404);
} // ^^^^^^^^^^^^^^^^^^^
注意setStatusCode($integer)
方法。
您可以在返回視圖時設置額外的標題以指定額外的數據,如文檔所述:
將標題附加到響應
請記住,大多數響應方法都是可鏈接的,從而可以流暢地構建響應實例。 例如,您可以使用 header 方法在將響應發送回用戶之前向響應添加一系列標頭:
return response($content) ->header('Content-Type', $type) ->header('X-Header-One', 'Header Value') ->header('X-Header-Two', 'Header Value');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.