thinkphp5.1 关联查询

关联查询使用with查询

$users = User::with(['profile'	=> function($query) {$query->field('name,email');
}])->select();
foreach ($users as $user) {echo $user->profile->name;
}

如果查询数据时,没有数据,则不返回整条信息,则使用 hasWhere,进行查询

// 查询用户昵称是think的用户
// 注意第一个参数是关联方法名(不是关联模型名)
$users = User::hasWhere('profile', ['nickname'=>'think'])->select();// 可以使用闭包查询
$users = User::hasWhere('profile', function($query) {$query->where('nickname', 'like', 'think%');
})->select();

使用 hasWhere ,时,必须 放在最前面,如果关联的数据为空,则整条都不返回,且即使使用 闭包查询也无效,都必须要有数据才返回,闭包只作为2次限制使用,未查询到数据,则不返回(前提,关联数据必须要有数据)

PS:使用 hasWhere 后,field 失效($this->field(‘id’))无效,需要使用下面的方式进行查询

$data = PayOrderModel::hasWhere('user', ['id'=>$this->USER->id], 'order_title,order_number,order_price,pay_type,actual_price,pay_time')//->field('order_title,order_number,order_price,pay_type,actual_price,pay_time')->where('status', ['=',2], ['=',4], 'or')//->order('id','desc')//下面这两种方式任选一种//使用表名//->order('pay_order.id','desc')//使用模型名->order('PayOrderModel.id','desc')->limit($start,$limit)->select();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Mybatis源码】XMLConfigBuilder构建器 - 加载XML与创建Configuration对象的过程

XMLConfigBuilder是Mybatis中定义的进行构建Configuration对象的类,此类用于读取XML配置文件创建并初始化Configuration对象;本篇我们主要介绍加载XML文件与创建Configuration对象的过程。 一、Configuration对象的创建过程 下面是从Configuration类中取到的代码片段: pu…

技术文档工具『Writerside』抢鲜体验

前言 2023 年 10 月 16 日,JetBrains 宣布以早期访问状态推出 Writerside,基于 IntelliJ 平台的 JetBrains IDE,开发人员可使用它编写、构建、测试和发布技术文档,可以作为 JetBrains IDE 中的插件使用,也可以作为独立…

高防CDN的发展趋势

随着互联网的迅速发展,网站和在线服务的安全性变得至关重要。网络攻击如DDoS攻击和恶意流量正在增加,因此高防CDN(高防御内容分发网络)成为网络安全的重要组成部分。本文将探讨高防CDN未来的发展趋势,并比较其与传统CD…

laravel队列

laravel redis队列 1、创建job队列任务 php artisan make:job StoreUser执行上述命令后&#xff0c;会生成app/Jobs/StoreUser.php文件&#xff0c;编辑文件内容如下&#xff1a; <?phpnamespace App\Jobs;use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queu…

leetcode:231. 2 的幂(位运算)

一、题目&#xff1a; 函数原型&#xff1a;bool isPowerOfTwo(int n) 二、思路&#xff1a; 根据题意&#xff0c;要判断一个数是否为2的幂。如果一个数是2的幂&#xff0c;那么该数的二进制表示中只有一个1。所以只需要将该数的二进制表示中的最低位1移除&#xff0c;判断剩下…

三十七、【进阶】SQL的explain

1、explain 2、基础使用 在使用explain关键字时&#xff0c;只需要在所执行语句前加上explain即可 mysql> explain select * from stu where id3; ---------------------------------------------------------------------------------------------------------- | id | s…

2023网络安全工程师面试题汇总(附答案)

一、面试开场白 一般首先是一段例行的开场自&#xff08;说&#xff09;我&#xff08;学&#xff09;介&#xff08;逗&#xff09;绍&#xff08;唱&#xff09;&#xff0c;在这里我直接给你个万能公式&#xff1a; 1、在xx安全论坛投稿过xx篇文章&#xff0c;获得xx元稿费…

c语言基础:L1-052 2018我们要赢

2018年天梯赛的注册邀请码是“2018wmyy”&#xff0c;意思就是“2018我们要赢”。本题就请你用汉语拼音输出这句话。 输入格式&#xff1a; 本题没有输入。 输出格式&#xff1a; 在第一行中输出&#xff1a;“2018”&#xff1b;第二行中输出&#xff1a;“wo3 men2 yao4 yi…

中文编程开发语言工具构件说明:屏幕截取构件的编程操作

屏幕截取 用于截取指定区域的图像。 图 标&#xff1a; 构件类型&#xff1a;不可视 重要属性 l 截取类型 枚举型&#xff0c;设置在截取屏幕时的截取类型。包括&#xff1a;全屏幕、指定区域、活动窗口三种。当全屏幕截取时相当于执行了硬拷屏&#xff08;PrintScre…

HVV(护网)蓝队视角的技战法分析

一、背景 1.HVV行动简介 HVV行动是国家应对网络安全问题所做的重要布局之一。从2016年开始&#xff0c;随着我国对网络安全的重视&#xff0c;演习规模不断扩大&#xff0c;越来越多的单位都加入到HVV行动中&#xff0c;网络安全对抗演练越来越贴近实际情况&#xff0c;各机构…

php 数组基础/练习

数组 练习在最后 数组概述 概述与定义 数组中存储键值对 数组实际上是一个有序映射 key-value&#xff0c;可将其当成真正的数组、列表&#xff08;向量&#xff09;、散列表、字典、集合、栈、队列等 数组中的元素可以是任意类型的数据对象&#xff08;可以嵌套数组&#…

英语什么时候加s和es

名词变复数一般情况下加s&#xff0c;以s,x,ch,sh结尾加es。一个名词如果表示一个或一样东西&#xff0c;它取单数形式&#xff0c;如果表示两个或更多的这类东西&#xff0c;则需要用名词复数形式。 1 以s,x,sh,ch结尾的词&#xff0c;加es。 2 以辅音字母&#xff08;除a/e/…

CNN系列

文章目录 R-CNN&#xff08;2014&#xff09;Conclusion SPP-net&#xff08;2015&#xff09; R-CNN&#xff08;2014&#xff09; 哈哈 创新&#xff1a; (1)人们可以将高容量卷积神经网络(cnn)应用于自下而上的区域建议&#xff0c;以定位和分割对象; (2)当标记训练数据稀缺…

python爬虫语法

注释 单行注释 # 多行注释 ‘’’注释内容’’’ 变量类型 和java不同不需要定义数据类型 变量名变量值 Numbers&#xff08;数字&#xff09;&#xff1a;int&#xff08;有符号整型&#xff09;、long&#xff08;长整型[也可以代表八进制和16进制]&#xff09;、float&am…

动画系统的前世今生(一)

掐指一算&#xff0c;五年没更新过我的CSDN账号啦&#xff0c;方向也从人工智能变成了计算机图形学&#xff0c;当然也依旧会关注AI的发展&#xff0c;之前在知乎上写了一些文章[传送门]&#xff0c;后续也会逐渐同步到CSDN上&#xff5e; 这个系列将包含五篇文章&#xff0c;内…

androdi知识笔记

jbr embed&#xff1a;android studio自带的jdk AGP(android gradle plugin) aar jar 利用java语言可以写应用程序&#xff08;利用已有库加速开发过程&#xff09;&#xff0c;也可以自己开发库用于特定功能&#xff08;供引用&#xff09;。 循环啊是个&#xff0…

JVM 基础篇:类加载器

一.了解JVM 1.1什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟计算机功能来实现的&#xff0c;JVM屏蔽了与具体操作系统平台相关的信息&#xff0c;Java程序只需…

android webview加载第三方网页,<select>控件无法弹出的问题

问题重现 我这边用原生的webview加载第三方网页&#xff0c;有个弹框&#xff0c;无法弹出&#xff0c;一看网页源码&#xff0c;用的是select控件&#xff0c;但是在安卓手机浏览器上&#xff0c;iOS上&#xff0c;都是可以的&#xff0c;然后调试&#xff0c;控制台也没报错…

python之字典的用法

python之字典的用法 Python中的字典是一种无序、可变、可迭代的数据类型&#xff0c;它由键值对组成&#xff0c;每个键都映射到一个值。字典在Python中被视为可变对象&#xff0c;这意味着我们可以随时更新、添加或删除字典中的键值对。 以下是一些关于Python字典的基本用法&a…

Alibaba Druid整合

文章目录 方式一&#xff1a;自定义整合方式二&#xff1a;使用 Druid 官方的 Starter Druid官网&#xff1a;https://github.com/alibaba/druidDruid官网文档&#xff08;中文&#xff09;&#xff1a;https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%…