tp6 多关联withJoin查询

news/2024/11/7 13:35:03/

记录:一个模型关联多个模型,进行查询
代码示例:

	protected $relationSearch = false;/*** @NodeAnotation(title="列表")*/public function index(){        if ($this->request->isAjax()) {if (input('selectFields')) {return $this->selectList();}list($page, $limit, $where) = $this->buildTableParames();$count = $this->model->withJoin(['systemCar','driver','supplier'],'left') ->where($where)->count();$list = $this->model->withoutField('delete_time')->withJoin(['systemCar','driver','supplier'],'left')->where($where)->page($page, $limit)->order($this->sort)->select()->each(function($item,$key){//创建人类型:1-管理员,2-客户if($item['create_people_type'] == 1){$item['create_people'] =  Db::name('system_admin')->where(['id'=>$item['create_people']])->value('realname');}else{$item['create_people'] = Db::name('customer')->where(['id'=>$item['create_people']])->value('name');}//修改人类型:1-管理员,2-客户if($item['update_people_type'] == 1){$item['update_people'] = Db::name('system_admin')->where(['id'=>$item['update_people']])->value('realname');}else{$item['update_people'] = Db::name('customer')->where(['id'=>$item['create_people']])->value('name');}$item['create_time'] = $item['create_time'] ? date('Y-m-d H:i:s',$item['create_time']) : '';    $item['update_time'] = $item['update_time'] ? date('Y-m-d H:i:s',$item['update_time']) : '';    //开始配送时间,预计到达时间$item['start_time'] = $item['start_time'] ? date('Y-m-d H:i:s',$item['start_time']) : '';    $item['end_time'] = $item['end_time'] ? date('Y-m-d H:i:s',$item['end_time']) : '';   });$data = ['code'  => 0,'msg'   => '','count' => $count,'data'  => $list,];return json($data);}return $this->fetch();}
注意:
1,withJoin([‘systemCar’,‘driver’,‘supplier’],‘left’) 要放在withoutField() 函数之后
2,withJoin([‘systemCar’,‘driver’,‘supplier’],‘left’) 中第二个参数:
a/ 不填时,若未关联到数据时,则不显示
b/ 为 left 时,以当前表为主表进行查询,未关联到也会显示
c/ 为 right 时,以关联表为主表进行查询,未关联到也会显示

二、查询并显示关联表中的部分字段

 ->with(['pinpai'=>function($query){$query->field('pinpai.id as pinpaiid,pinpai_name');}])

(持续更新中…)


http://www.ppmy.cn/news/428423.html

相关文章

Mac添加l2tp

Mac添加l2tp 注意:添加连接前请先提取相关的用户信息!

L2TP/IPSEC搭建详细步骤

背景:长沙分公司访问北京总公司的办公OA业务,目前的方法是通过在北京总公司出口防火墙上配置OA业务的端口映射,然后在长沙分公司通过输入北京总部给的域名带上映射的端口即可访问,但该访问过程经过公网,存在数据被截取…

tp摄像头的默认地址_TPLINK默认IP地址是什么?

展开全部 路由器默认的登陆IP一般是192.168.1.1或192.168.0.1, 查看您的路32313133353236313431303231363533e4b893e5b19e31333365666236由器底部,会查看到以下某一种地址,如下: 需要强调的是:您看到的地址是路由器默认的管理地址,也就是出厂的地址。实际使用中,如果您修…

Anaconda jupyter lab安装及初使用

之前写了一篇: Anaconda、Jupyter的安装部署及使用问题总结 最近又用python比较多,升级了一下本机的anaconda版本,并使用jupyter lab来编写python脚本,本文记录一下升级、使用过程。 安装anaconda 下载安装包 Anaconda3-2023.03…

记一次SM32F407ZG死机原因分析

主芯片:STM32F407ZG 产品软件架构: bootloader upgrader / application (upgrader 是一个系统升级器,升级系统专用)在bootloader模式下可以加载upgrader或application并启动在upgrader模式下可以更新bootloader和整个applicatio…

定时任务执行时间设置详解

目录 前提实践举例定时任务执行时间设置详解定时器包含的子表达式和对应子表达式允许的值子表达式中特殊字符含义的解释和相应示例 前提 一般在处理业务过程中,都需要在特定的时间点执行特定的任务,尤其是业务复杂且执行时间很长,业务之间关…

家中群晖NAS遇到断电如何自动关机

群晖NAS遇到断电时如何自动关机 前置条件实现功能的想法具体实施的步骤开启群晖Linux的SSH登陆安装Putty或是Xshell远程登陆上群晖创建计划任务 前置条件 需要一台UPS(品牌功能不限,只需续航5分钟以上就可以) 实现功能的想法 通过监控网卡…

分布式安装配置spark-3.2.3

Spark是一个基于内存的大数据计算框架,可以与Hadoop集成,提供更快速的数据处理能力。本文将介绍如何在三个Ubuntu系统上搭建一个Spark集群。 主要步骤包括: 准备工作:下载安装包,设置环境变量,解压安装包…