首页 > 数据库 >thinkphp6数据库相关操作

thinkphp6数据库相关操作

时间:2023-05-30 19:11:57浏览次数:46  
标签:function UserModel data 数据库 thinkphp6 user query 操作 where

一、多表联合查询

$list = UserModel::where(function (Query $query) {
            $data = $this->request->param();
            $query->where('user_type',2);
            。。。。
        })->haswhere('UserParams',function(Query $query){
$query->where('elite', 1); 。。。。 })->order("create_time DESC") ->paginate(15);

生成sql SELECT `UserModel`.* FROM `xxxx_user` `UserModel` INNER JOIN `xxxx_user_params` `UserParamsModel` ON `UserModel`.`id`=`UserParamsModel`.`userid` WHERE `UserParamsModel`.`elite` = '1'  ORDER BY `create_time` DESC LIMIT 0,15

没有查询条件user_type=2  只有 elite 条件

要先haswere,再where  ,where里的条件才有效

$list = UserModel::haswhere('UserParams',function(Query $query){
             
                $query->where('elite', 1);
             
        })->where(function (Query $query) {
            $data = $this->request->param();
            $query->where('user_type',2);
            if (!empty($data['uid'])) {
                $query->where('id', intval($data['uid']));
            }

            if (!empty($data['keyword'])) {
                $keyword = $data['keyword'];
                $query->where('user_login|user_nickname|user_email|mobile', 'like', "%$keyword%");
            } 
        })->order("create_time DESC")
            ->paginate(15);

 

user表不想返回所有字段怎么办?尤其是ajax请求直接返回查询数据时,不能把密码一起返回

可以这样 

hasWhere('userParams', function($query) use($where) {
$query->where($where);
},'id,UserModel.avatar,user_nickname,sex')

 

hasWhere 是有第三个参数的,第三个参数可以指定返回字段

如果想返回UserParams 关联模型的字段怎么办??? 查询结果集里循环追加
foreach($users as $user) {
    $user->userProfile;
    $user->userParams;

}

 

标签:function,UserModel,data,数据库,thinkphp6,user,query,操作,where
From: https://www.cnblogs.com/djiz/p/17444103.html

相关文章

  • 关于VRP配置文件的操作
    关于VRP配置文件的操作目录关于VRP配置文件的操作场景一场景二前言:关于华为网络设备操作系统VRP配置文件的操作是NA级别的内容,已经学过很久了,但到了真实环境使用时多多少少有一些不自然,原因无非是思考的深度不足且练习的次数也不足,虽然现在已经学到IE了,但发觉发现这些基础的操......
  • Elasticsearch专题精讲—— 操作文档 ——读写文档
     操作文档——读写文档1、Introductionhttps://www.elastic.co/guide/en/elasticsearch/reference/8.8/docs-replication.htmlEachindexinElasticsearchisdividedintoshardsandeachshardcanhavemultiplecopies.Thesecopiesareknown......
  • MySQL之DQL数据查询操作
    一:SQL概述及规范SQL(StructuredQueryLanguage,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有SQL-86,SQL-89,SQL-92,SQL-99等标准。SQL有两个重要的标准,分别是SQL92和SQL99,它们......
  • 5-24|处理git免密操作
    你要知道这里面一般都是没有用户这一说法的git仓库免密首先自己的公钥在cat/root/.ssh/id_rsa.pub然后想要用什么用户进行操作呢,就去对面的那个/root/.ssh/authorized_keys就放在这里如果没有git用户就这样搞......
  • 5万唐诗宋词大全全唐诗全宋词ACCESS数据库
    《全唐诗》是清朝初年编修的汇集唐代诗歌的总集,全书共九百卷,收录唐代诗人二千五百二十九家,诗作四万二千八百六十三首,是中国规模最大的一部诗歌总集。(全唐诗ACCESS数据库含记录数有43086条)《全宋词》荟萃了宋代三百年间的词作,收录宋代词人一千三百三十家,词作两万一千一百一十六首......
  • 【git】git常用操作
    一、git简介git通用操作流程如下图:  基础知识:1、工作区:本地存放项目文件的地方。2、版本库:即.git目录,其中主要包含两个部分,缓存区和本地仓库。3、缓存区:缓存区(Index或者Stage),add命令将工作区的文件添加到缓存区。4、本地仓库:本地master分支,commit命令将缓存区的文件添加......
  • 354个有些图片的推理题库ACCESS\EXCEL数据库
    推理题类的数据有一些,比如《1000道逻辑推理考题ACCESS数据库》、《近5千侦探脑筋急转弯选择题ACCESS数据库》等,但是今天遇到了一份有些图片的推理题库,感觉非常不错,就是记录数少了一些,请看以下截图,截图包含所有字段,所有图片放在一个文件夹中。分类情况如下:逻辑推理(60)、脑筋急转弯......
  • 创龙教仪TL6748-PlusTEB教学实验箱实验操作教程:2-2 LED灯控制实验
    2-2LED灯控制实验(点击查看完整视频)1、实验目的本次视频教程是基于创龙教仪TL6748-PlusTEB教学实验箱完成的。本节视频的目的是学习基于StarterWare开发环境配置GPIO管脚的方法和原理,并实现StarterWare开发环境下的LED灯控制。2、实验原理StarterWareStarterWare是一个免费的软件开......
  • 5.30数据库总结
    第一章:1.数据:描述事物的符号记录。数据库:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。特点:数据按一定的数据模型组织、描述和储存;可为各种用户共享冗余度较小数据独立性高易扩展数据库管理系统:位于用户与操作系统之间的一层数据管理软件。数据库系......
  • 关于数据库-SQL-between-运算符语句的使用及说明
    关于数据库SQL语句between运算符说明如下1、多用于选取介于两个值之间的数据范围内的值2、运算符选择给定范围内的值。值可以是数字,文本或日期3、是包含性的:包括开始和结束值,且开始值需小于结束值(否则返回空,即0条记录)关于SQL语句between的使用格式如下:selectcolumn_nam......