2014-10-31 114 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

相关问题