当前位置: 首页 > news >正文

Thinkphp 6.0一对一关联查询

本节课我们来了解关联模型中,一对一关联查询的使用方法。
一.hasOne 模式
1. hasOne 模式,适合主表关联附表,具体设置方式如下:
hasOne('关联模型',['外键','主键']);
return $this->hasOne(Profile::class,'user_id', 'id');
关联模型(必须):关联的模型名或者类名
外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如 user_id
主键:当前模型主键,默认会自动获取也可以指定传入
2. 在上一节课,我们了解了表与表关联后,实现的查询方案;
$user = UserModel::find(21);
return $user->profile->hobby;
3. 使用 save()方法,可以设置关联修改,通过主表修改附表字段的值;
$user = UserModel::find(19);
$user->profile->save(['hobby'=>'酷爱小姐姐']);
4. ->profile 属性方式可以修改数据,->profile()方法方式可以新增数据;
$user->profile()->save(['hobby'=>'不喜欢吃青椒']);

二.belongsTo 模式
1. belongsTo 模式,适合附表关联主表,具体设置方式如下:
belongsTo('关联模型',['外键','关联主键']);
return $this->belongsTo(Profile::class,'user_id', 'id');

关联模型(必须):模型名或者模型类名
外键:当前模型外键,默认的外键名规则是关联模型名+_id
关联主键:关联模型主键,一般会自动获取也可以指定传入
2. 对于 belongsTo()的查询方案,上一节课已经了解过,如下:
$profile = ProfileModel::find(1);
return $profile->user->email;
3. 使用 hasOne()也能模拟 belongsTo()来进行查询;
//参数一表示的是 User 模型类的 profile 方法,而非 Profile 模型类
$user = UserModel::hasWhere('profile', ['id'=>2])->find();
return json($user);
//采用闭包,这里是两张表操作,会导致 id 识别模糊,需要指明表
$user = UserModel::hasWhere('profile', function ($query) {
$query->where('profile.id', 2);
})->select();
return json($user);

相关文章:

Thinkphp 6.0一对一关联查询

本节课我们来了解关联模型中,一对一关联查询的使用方法。 一.hasOne 模式 1. hasOne 模式,适合主表关联附表,具体设置方式如下: hasOne(关联模型,[外键,主键]); return $this->hasOne(Profile::class,user_id, id); 关联模型&…...

基于51单片机的自动打铃打鸣作息报时系统AT89C51数码管三极管时钟电路

wx供重浩:创享日记 对话框发送:单片机打铃 获取完整无水印论文报告说明(含源码程序、电路原理图和仿真图) 本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动&…...

算法详解-双指针算法的魅力-一种简单而高效的编程思想

文章目录双指针简介快慢指针快慢指针介绍快慢指针例题快慢指针优缺点:对撞指针对撞指针介绍:对撞指针例题对撞指针优缺点:更新中——未完总结更多宝藏双指针简介 😎🥳😎🤠😮&#x…...

网页审查元素

在讲解爬虫内容之前,我们需要先学习一项写爬虫的必备技能:审查元素(如果已掌握,可跳过此部分内容)。1、审查元素在浏览器的地址栏输入URL地址,在网页处右键单击,找到检查。(不同浏览器的叫法不同…...

gpt2 adapter finetune

1. 安装依赖: pip install -U adapter-transformers pip install datasets 2.训练代码: from datasets import load_dataset from transformers import AutoModelForCausalLM from transformers import GPT2Tokenizer from transformers import Adap…...

Day14_文件操作

一、数据存储 1.1 计算机数据存储 计算机内存分为运行内存和硬盘两种:保存在运行内存中的数据在程序运行结束后会自动释放,保存在硬盘中的数据会一直存在(除非手动删除或者硬盘损坏) 1)打开文件 open(文件路径, 文件打开方式‘r’, encod…...

leetcode 轮转数组 189

题目 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2…...

Leetcode.1849 将字符串拆分为递减的连续值

题目链接 Leetcode.1849 将字符串拆分为递减的连续值 Rating : 1747 题目描述 给你一个仅由数字组成的字符串 s。 请你判断能否将 s拆分成 两个或者多个 非空子字符串 ,使子字符串的 数值 按 降序 排列,且每两个 相邻子字符串 的数值之 差 …...

Android布局层级过深为什么会对性能有影响?为什么Compose没有布局嵌套问题?

做过布局性能优化的同学都知道,为了优化界面加载速度,要尽可能的减少布局的层级。这主要是因为布局层级的增加,可能会导致测量时间呈指数级增长。 而Compose却没有这个问题,它从根本上解决了布局层级对布局性能的影响: Compose界…...

【UR机械臂CB3 网络课程 】

【UR机械臂CB3 网络课程 】1. 前言2. 概览:特色与术语2.1 机器人组成2.1.1控制柜2.1.2 UR 机器人手臂2.2 接通机器人电源2.3 移动机械臂3. 机器人如何工作3.1 选择臂端工具3.2 输入有关臂端工具的信息3.3 连接外部装置3.4 机器人编程4. 设置工具4.1 末端执行器配置4.2 工具中心…...

dp-统计字典序元音字符串的数目

给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。 字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i1] 相同或在 s[i1] 之前。 示例 1: 输入&…...

LFM雷达实现及USRP验证【章节3:连续雷达测距测速】

第一章介绍了在相对速度为0时候的雷达测距原理 目录 1. LFM测速 1.1 雷达测速原理 1.2 Chrip信号测速 2. LFM测速代码实现 参数设置 仿真图像 matlab源码 代码分析 第一章介绍了在相对速度为0时候的雷达测距原理,第二章介绍了基于LFM的雷达测距原理及其实现…...

COLMAP多视角视图数据可视化

这篇博文主要介绍多视角三维重建的实用工具COLMAP。为了让读者更快确定此文是否为自己想找的内容,我先用简单几句话来描述此文做的事情: 假设我们针对一个物体(人)采集了多个(假设60个)视角的照片&#xff…...

2023年全国最新高校辅导员精选真题及答案36

百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 92.校园文化形成与发展的主要影响因素有() A.学校的领导与管理活…...

ThreeJS-全屏和退出全屏、自适应大小(五)

下载新得组件 npm install gsap -S 新引入 import gsap from gsap //动画控制 代码&#xff1a; <template> <div id"three_div"> </div> </template> <script> import * as THREE from "three"; import {OrbitControls } f…...

等级保护2.0要求及所需设备清单

等级保护的工作流程包括定级、备案、建设整改、等级测评&#xff0c;核心思想在于建立“可信、可控、可管”的安全防护体系&#xff0c;使得系统能够按照预期运行&#xff0c;免受信息安全攻击和破坏。 三级等保要求及所需设备 三级等级保护指标项&#xff1a; 物理访问控制…...

【大数据之Hadoop】六、HDFS之NameNode、Secondary NameNode和DataNode的内部工作原理

NN和2NN的内部工作原理 对于NameNode的存放位置&#xff1a; 内存中&#xff1a;好处&#xff1a;计算快 坏处&#xff1a;可靠性差&#xff0c;断电后元数据会丢失 磁盘中&#xff1a;好处&#xff1a;可靠性搞 坏处&#xff1a;计算慢 内存磁盘中&#xff1a;效率低 所以设…...

小黑子—Java从入门到入土过程:第四章

Java零基础入门4.0Java系列第四章1. 顺序结构2. if语句3. switch 语句3.1 default的位置和省略3.2 case 穿透3.3 switch 新特性 &#xff08;jdk12开始&#xff09;4. for 循环5. while 循环6.do...while 循环7. 无限循环8. 跳转控制语句9. 练习9.1 逢七过9.2 平方根9.3 求质数…...

数据库原理及应用(四)——SQL语句(2)SQL基础查询以及常见运算符

一、SELECT语句基础 数据库查询是数据库的核心操作&#xff0c;SELECT 语句用于从数据库中选取数据。 SELECT [ALL/DISTINCT] <列名>,<列名>...FROM <表名或视图名>,<表名或视图名>[WHERE <条件表达式>][GROUP BY <列名1> [HAVING <条…...

(算法基础)Floyd算法

适用情景Floyd算法适用于多源汇最短路&#xff0c;也就是他问你比如说从3号点到6号点的最短路距离&#xff0c;比如说从7号点到20号点的最短路距离&#xff0c;而不是单源最短路&#xff08;从1号点到n号点的最短路距离&#xff09;。在这个算法当中允许负权边的存在。但在求最…...

AI驱动数字营销平台架构解析:从工作流引擎到品牌个性化

1. 项目概述&#xff1a;一个AI驱动的数字营销代理平台最近在GitHub上看到一个挺有意思的项目&#xff0c;叫windagency/valora.ai。乍一看这个仓库名&#xff0c;可能很多人会有点懵&#xff0c;这到底是做什么的&#xff1f;是AI工具&#xff0c;还是营销平台&#xff1f;作为…...

3步完成HTML网页到Figma设计稿的终极转换指南

3步完成HTML网页到Figma设计稿的终极转换指南 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html HTML转Figma工具是一个革命性的开源Chrome扩展程序&#xff0c;它能够将任何网页瞬间…...

Netflix 4K画质与杜比音效优化指南:解锁你的流媒体最佳体验

Netflix 4K画质与杜比音效优化指南&#xff1a;解锁你的流媒体最佳体验 【免费下载链接】netflix-4K-DDplus MicrosoftEdge(Chromium core) extension to play Netflix in 4K&#xff08;Restricted&#xff09;and DDplus audio 项目地址: https://gitcode.com/gh_mirrors/n…...

ElevenLabs声音库调优秘技:如何用API+Prompt工程将TTS自然度提升67%(附2024最新声纹参数表)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs声音库资源推荐 ElevenLabs 提供了业界领先的高质量语音合成服务&#xff0c;其声音库&#xff08;Voice Library&#xff09;涵盖多语种、多风格的预训练语音模型&#xff0c;适用于播客、有…...

终极数据恢复指南:TestDisk PhotoRec 免费开源解决方案

终极数据恢复指南&#xff1a;TestDisk & PhotoRec 免费开源解决方案 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 你是否曾因误删分区、格式化硬盘或系统崩溃而面临数据丢失的噩梦&#xff1f;别担心…...

LZ4并行压缩:线程池设计与性能瓶颈突破的终极指南

LZ4并行压缩&#xff1a;线程池设计与性能瓶颈突破的终极指南 【免费下载链接】lz4 Extremely Fast Compression algorithm 项目地址: https://gitcode.com/GitHub_Trending/lz/lz4 LZ4作为一款Extremely Fast Compression algorithm&#xff0c;其并行压缩能力是提升处…...

两轮车租赁数字化升级:从物联网架构到运营效率提升

1. 两轮车租赁模式升级&#xff1a;从传统痛点看数字化解决方案最近和几个在欧洲做短途出行和即时配送的朋友聊天&#xff0c;大家不约而同地提到了一个趋势&#xff1a;两轮车&#xff0c;特别是电动两轮车的租赁市场&#xff0c;正在经历一场静悄悄但深刻的模式升级。这背后&…...

1 个开发技巧,餐饮小程序加载速度飙升 70%

对于餐饮小程序而言&#xff0c;加载速度直接决定用户留存——据调研&#xff0c;用户打开小程序后&#xff0c;若加载时间超过3秒&#xff0c;流失率会高达80%。很多餐饮门店的小程序&#xff0c;明明功能完善、设计美观&#xff0c;却因为加载缓慢&#xff0c;导致用户刚打开…...

Verilog数据类型详解:从wire/reg到memory的硬件映射与工程实践

1. 从电路到代码&#xff1a;理解Verilog数据类型的本质刚接触Verilog的时候&#xff0c;很多人会把它当成一门编程语言来学&#xff0c;上来就琢磨reg和wire怎么赋值&#xff0c;结果越学越迷糊。我刚开始也踩过这个坑&#xff0c;后来才明白&#xff0c;Verilog的本质是硬件描…...

告别付费!手把手教你用Matrikon OPC Server Simulation(v1.7.2)搭建免费工业数据模拟环境

零成本构建工业数据模拟环境&#xff1a;Matrikon OPC Server Simulation全攻略 在工业自动化领域&#xff0c;数据采集与监控系统&#xff08;SCADA&#xff09;的开发与测试往往需要真实的OPC服务器环境。然而&#xff0c;商业OPC服务器的高昂成本常常成为初学者和小型团队的…...