2014-10-31 133 views
1

我在Laravel中構建REST API,並且在創建新用戶時,我想返回201狀態代碼和Location標題以指向新資源。強制Laravel響應狀態代碼

大部分正在被使用此代碼來實現:

$response = Response::make(null, 201)->header('Location', Config::get('app.url') . '/v1/users/' . $user->id); 
return $response; 

然而Laravel似乎是壓倒一切的是我設置的狀態代碼,因爲我設置一個Location頭,因爲我得到一個302 Moved Temporarily頭回來。

即使在指定Location標題時,如何強制執行201狀態碼?

+0

公平競爭實現適當的響應代碼。我真的不知道爲什麼Laravel(我非常尊重)不鼓勵爲默認情況下的Create方法成功返回「201 Created」。幹得好! – 2017-10-16 15:51:49

回答

1

問題是當您設置header()位置時,它覆蓋了Laravel響應。

如果添加201個狀態到header()功能 - 它應該工作,我認爲:

$response = Response::make(null, 201)->header('Location', Config::get('app.url') . '/v1/users/' . $user->id, true, 201); 
return $response; 
+0

非常感謝,沒有意識到'header()'方法需要那些額外的參數。 – 2014-10-31 00:40:09