控制器 $this->error() 自定义返回数据的正确姿势

浏览:364 发布日期:2018/07/13 分类:用法示例 关键字: thinkphp 自定义返回数据
如何自定义 Jump 返回的数据
对于一个资深 thinkphp 爱好者来说,在使用 thinkphp 进行 web 开发创作时,肯定会在 controller 中经常使用$this->error('xxx');
$this->success('xxx');
这样来返回一些数据提交后的响应信息,此功能相当受用。

如果是多模块开发时,在 api 模块中也用该操作方法返回 json 数据时会有多余的一些字段。比如我们定义了一个 api 模块,创建了一个 user/index 方法,并返回了参数错误的提示:


对于一个有着代码洁癖的人来说,这个 wait,url 字段是万万不能存在的。怎么办呢?

以往我们会第一个想到创建一个父类,在父类中重写一下 $this->error() 和 $this->success() 方法不就 OK 了吗。操作如下:

我们创建了一个 base.php 基类,然后在基类中重写了一个 error 方法,在 error 方法中,我们将 result 的 url,wait 字段去掉即可

让 User 类继承 base 类

这时我们再访问接口地址

哇哈哈,是不是去掉了。
嗯嗯,达到目的了,今天我写的教程就是这样吗,就完成了?



NoNoNo~~,这不是正确的姿势,而且也有弊端,一但框架升级,或者 Jump 调整,那就悲剧了~

正确的姿势应该是这样的。

1、在 api 模块中新建一个自定义行为,我这里创建的是 Result.php,在 Result 行为的 run方法里,重置 response 的 data,如下:

2、在 api 模块中创建 tags.php 行为入口配置文件,内容如下:


这时我们再访问接口地址

哇卡卡,这才是正确的姿势。

注:该操作仅支持 5.1.14+ 的版本

如有问题可加 QQ 群:438811382 进行讨论
评论( 相关
后面还有条评论,点击查看>>