API接口返回数据结构构建类
<?php
declare(strict_types=1);
namespace wangqy\tcc\utils;
use think\Response;
class Result
{
/**
* 结果状态码
*
* @var int
*/
protected $code = 0;
/**
* http请求状态码
*
* @var int
*/
protected $httpCode = 200;
/**
* 响应结果类型.
*
* @var string
*/
protected $responseType = 'json';
/**
* 失败返回信息.
*
* @param $code
* @param $msg
* @param $data
*
* @return Response
*/
public function fail($msg, $code, $data = null)
{
return $this->make($code, $msg, $data);
}
/**
* 仅返回说明.
*
* @param $msg
*
* @return Response
*/
public function onlySucMsg($msg = 'success')
{
return $this->success(null, $msg);
}
/**
* @return $this
*/
public function setCode(int $code)
{
$this->code = $code;
return $this;
}
/**
* @return $this
*/
public function setHttpCode(int $httpCode)
{
$this->httpCode = $httpCode;
return $this;
}
/**
* @return $this
*/
public function setResponseType(string $responseType)
{
$this->responseType = $responseType;
return $this;
}
/**
* 成功返回信息.
*
* @param $data
* @param $msg
*
* @return Response
*/
public function success($data = null, $msg = 'success')
{
return $this->make($this->code, lang($msg), $data);
}
/**
* @param int $code
* @param string $msg
* @param null|array $data
*
* @return Response
*/
private function make($code, $msg, $data = null)
{
$extra = [
'log_id' => $GLOBALS['log_id'] ?? '',
'now' => time(),
];
$res = compact('code', 'msg', 'extra');
if (null !== $data) {
$res['data'] = $data;
}
return Response::create($res, $this->responseType, $this->httpCode);
}
}
在common文件中
if (!function_exists('result')) {
/**
* 获取当前json对象实例.
*
* @return App|object|Result
*/
function result()
{
return app('result');
}
}
实例:
public function getList()
{
$params = input();
$result = $this->logic->getList($params);
return result()->success($result);
}
原文:http://upwqy.com/?p=5
搜索
复制