QB 返回的数据格式

2024-03-23 16:04
文章标签 数据格式 返回 qb

本文主要是介绍QB 返回的数据格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

想要的效果:

 

而不是  $a['pm] = ['pm' ,'cover','power'] 这种形式.

对应的方法! 

  public function withAttr($name, callable $callback = null){if (is_array($name)) {foreach ($name as $key => $val) {$this->withAttr($key, $val);}return $this;}$this->options['with_attr'][$name] = $callback;if (strpos($name, '.')) {[$relation, $field] = explode('.', $name);if (!empty($this->options['json']) && in_array($relation, $this->options['json'])) {} else {$this->options['with_relation_attr'][$relation][$field] = $callback;unset($this->options['with_attr'][$name]);}}return $this;}

    public function append(array $append = []){$this->options['append'] = $append;return $this;}

    public function page(): array{$builder = new Builder($this->getModel());$builder->setOp(['create_time' => 'DATE_RANGE']);return $builder->selectQuery(function (BaseQuery $query) {//关联查询-开始$query->append(['pm','power','cover'])->withAttr(['pm' => function ($v, $r) {//获取榜单排名$tx = [];$data = (new RechargeModel())->with(['user'])->where('list_id',$r['id'])->field('user_id,SUM(money) as money')->group('user_id')->order('money','desc')->limit(4)->select()->toArray();if(count($data)){foreach ($data as $item){$tx[]= $item['user'];}}return $tx;},'power' => function ($v, $r) {$cover = (new  InfoModel())->where('id',$r['id'])->find();$power =  (new TypeModel())->where('id',$cover['lx'])->find();return $power['power'];},'cover' => function ($v, $r) {$cover = (new  InfoModel())->where('id',$r['id'])->find();return $cover['cover'];},]);$with = array_merge($with ?? [], ['user', 'info', 'plan']);  $query->with($with);//关联查询-结束})->page();}}

这篇关于QB 返回的数据格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838841

相关文章

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

基于Spring实现自定义错误信息返回详解

《基于Spring实现自定义错误信息返回详解》这篇文章主要为大家详细介绍了如何基于Spring实现自定义错误信息返回效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景目标实现产出背景Spring 提供了 @RestConChina编程trollerAdvice 用来实现 HTT