use*_*776 1 laravel laravel-5 laravel-5.5
在Laravel 5.5中我们可以通过资源设置API(https://laracasts.com/series/whats-new-in-laravel-5-5/episodes/20),但我们如何发送STATUS CODE?
另外我应该如何动态设置状态,用()定义
//namespace App\Http\Resources;
//use Illuminate\Http\Resources\Json\Resource;
//class User extends Resource
public function with($request)
{
return [
'status' => 'success',
];
}
Run Code Online (Sandbox Code Playgroud)
小智 9
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\Resource;
class UserFail extends Resource{
/**
* Customize the outgoing response for the resource.
*
* @param \Illuminate\Http\Request
* @param \Illuminate\Http\Response
* @return void
*/
public function withResponse($request, $response)
{
/**
* Not all prerequisites were met.
*/
$response->setStatusCode(428, 'Precondition Required');
}
public function with($request){
return [
'status'=>'failed'
];
}
}
Run Code Online (Sandbox Code Playgroud)
只需在 withResponse 方法中设置状态代码
您可以使用该方法setStatusCode()从response():
use App\User;
use App\Http\Resources\User as UserResource;
Route::get('/user', function () {
return (new UserResource(User::find(1)))
->response()
->setStatusCode(200);
});
Run Code Online (Sandbox Code Playgroud)
小智 -3
默认情况下,HTTP 响应包含状态代码。因此,您不必在发送/接收的数据中获取它,而是在 HTTP 响应标头中获取它。
例如,如果您使用 axios 发送 AJAX 请求,您只需执行以下操作:
axios.get('/path/to/get/your/data/').
then(function(response) {
// response.status will represent your status code
});
Run Code Online (Sandbox Code Playgroud)
因此,当您在控制器中使用时abort(404);,状态代码将为 404。当您出现内部错误(代码 500)时,您将得到 500 作为响应代码。
| 归档时间: |
|
| 查看次数: |
3560 次 |
| 最近记录: |