- 推荐视频--处理错误返回
<?php
/**
* 调用方法原则,属于谁,就可以把谁写成一个类,然后去调用谁
* 返回的API一般有三种,response error notfound
* 每个返回都需要response 所以我们使用response类做返回
* 返回错误消息error时,我们可以直接调用response方法
* notfound又属于error的一种,所以可以调用error方法
*/
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ApiController extends Controller
{
protected $statusCode = 200;
/**
* @return int
*/
public function getStatusCode()
{
return $this->statusCode;
}
/**
* @param $statusCode
* @return $this
*/
public function setStatusCode($statusCode)
{
$this->statusCode = $statusCode;
return $this;
}
/**
* @param string $message
* @return mixed
* not found 本身就属于404,所以在此处可以直接写成404
*/
public function responseNoFonud($message = 'No Found')
{
return $this->setStatusCode(404)->responseError($message);
}
/**
* @param $message
* @return mixed
*/
public function responseError($message)
{
return $this->response([
'status' => 'failed',
'errors' => [
'status_code' => $this->getStatusCode(),
'message' => $message
]
]);
}
/**
* @param $data
* @return mixed
*/
public function response($data)
{
return \Response::json($data,$this->getStatusCode());
}
}
使用实例
注意事项。我们在使用中可能会需要setStatusCode()
函数去设置返回的状态,形成以下的链式函数
,这个时候我们需要在函数中返回这个类return $this;
class LessionController extends ApiController
{
public function index()
{
return $this->setStatusCode(400)->responseError('error返回');
}
}
public function index()
{
return $this->responseNoFonud();
}