Skip to content

响应

CatchAdmin 为了统一整个后台的响应格式,对后台的响应数据格式做了代码层面的劫持,所有的响应数据以固定的格式进行输出,如下

成功响应(非分页)

字段类型说明
codeint返回码
dataObject|Array返回数据
messagestring返回信息

错误响应

字段类型说明
codeint返回码
messagestring返回信息

成功响应(分页格式)

字段类型说明
codeint返回码
dataArray返回数据
limitint每页显示数量
messagestring返回信息
totalint总数

使用者一般在控制器的方法返回结果就可以了,例如下面这样的

php
public function index()
{
    return ['hello' => 'world'];
}

在控制器返回都是返回 success 的响应状态给前端,如果你需要错误响应,那么就需要使用异常

php
public function index()
{
    throw new FaileException('处理异常');
}

具体实现可以参考我写的博客文章-另辟蹊径!如何在 Laravel 更优雅的响应 JSON 数据 ,利用 Illuminate\Foundation\Http\Events\RequestHandled 事件来 hook 整个响应内容实现,虽然有些绕口,但是在使用起来真的方便太多了。

自定义

从个人开发经验来说,一般来说,后台的响应格式不会有什么变化,除非出现特殊需求,需要特定的响应格式。CatchAdmin 提供了一个非常易用的操作来实现特定的响应格式

php
use Catch\Support\ResponseBuilder;

public function index()
{
    return ResponseBuilder::success()->with('hello', 'world');
}

最后的响应的内容如下 CatchAdmin 专业版响应

还可以这么使用,先使用 code 静态方法,然后再进行链式调用

php
public function index()
{
    return ResponseBuilder::code(10000)
                ->with('hello', 'world')
                ->with('hi', 'world')
                ->data($data)
                ->message('Hello world');
}

这样就可以轻而易举的实现自定义响应内容了,一般没有特殊的数据格式,建议使用 CatchAdmin 默认的响应即可