thinkphp6入门(12)-- 一对一关联模型

news/2025/3/28 8:36:13/

定义一对一关联,例如,一个用户都有一个个人资料。

一、两表  

1.用户表:user

图片

2.工作经验表:work_experience

图片

user表的id关联work_experience表的user_id。

注意看,user_id=1的有2条工作经验

二、数据模型

主表模型:

/*** 用户表*/
class User extends Model{# 表名protected $table='user';/*** 查询用户的工作经验*/public function userWorkExperience(){//hasOne代表关联一张表  hasMany多张表  参数一:要关联的表 参数二:要关联表的外键 参数三:本表键return $this->hasOne(WorkExperience::class,'user_id','id');}}

子表模型:

/*** 工作经验*/
class WorkExperience extends Model{# 表名protected $table='work_experience';
}

三、控制器

1. 查询所有

$data = User::with('userWorkExperience')->select();
dd($data->toArray());

关联数据会在一个“关联名”的字段里

关联数据如果有多条,只会展示1条。

user_id=1的关联数据有2条,只展示了1条

图片

没有关联的数据就是null

图片

2.给User加查询条件

$data = User::with('userWorkExperience')->where('id', '>=', 2)->select();
dd($data->toArray());

图片

3. 给关联模型增加条件

$data = User::with(['userWorkExperience' => function($query) {$query->where('company', 'like', '美团%')->field('id,user_id, company');}])->where('id', '<', 3)->select();dd($data->toArray());

图片

参考:

https://www.kancloud.cn/manual/thinkphp6_0/1037600

https://blog.csdn.net/qq_66313178/article/details/126921557

by 软件工程小施同学


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

相关文章

爱智EdgerOS之深入解析数据库模块的Redis Client

一、Redis 简介 无论是什么类型的应用&#xff0c;都少不了和数据打交道。尤其是一些复杂的应用场景&#xff0c;都少不了一个高效可靠的数据库。例如日常开发中最常见的 MySQL 等关系型数据库&#xff0c;让数据的存储、检索轻松简单起来&#xff0c;甚至可以轻松地处理百万量…

JS基础源码之手写模拟new

JS基础源码之手写模拟new 手写模拟new初步实现最终实现 手写模拟new new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一。 我们先看看new实现了哪些功能&#xff1a; function Person (name,age){this.name name;this.age age;this.habit Games;…

ArkUI组件

目录 一、概述 声明式UI 应用模型 二、常用组件 1、Image&#xff1a;图片展示组件 示例 配置控制授权申请 2、Text&#xff1a;文本显示组件 示例 3、TextInput&#xff1a;文本输入组件 示例 4、Button&#xff1a;按钮组件 5、Slider&#xff1a;滑动条组件 …

【vtkWidgetRepresentation】第七期 vtkImplicitPlaneRepresentation

很高兴在雪易的CSDN遇见你 前言 本文分享vtkImplicitPlaneRepresentation源码剖析&#xff0c;及相关的实例&#xff0c;该接口主要用于切割交互&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起…

Django模型

一、model 文件中的类的建立&#xff1a; 对应的是数据库中的每个表&#xff0c;类中有什么字段&#xff0c;表就会对应的生成某个字段&#xff0c;主键id字段会自己生成&#xff1b; 数据库中的文件获取&#xff1a;只能通过模型类.objects来获取&#xff0c;不能通过模型类…

华为OD机试真题-执行任务赚积分-2023年OD统一考试(C卷)

题目描述: 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。 输入…

mybatis的快速入门以及spring boot整合mybatis(二)

需要用到的SQL脚本&#xff1a; CREATE TABLE dept (id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT ID, 主键,name varchar(10) NOT NULL UNIQUE COMMENT 部门名称,create_time datetime DEFAULT NULL COMMENT 创建时间,update_time datetime DEFAULT NULL COMMENT 修改…

LLM之Agent(五)| AgentTuning:清华大学与智谱AI提出AgentTuning提高大语言模型Agent能力

​论文地址&#xff1a;https://arxiv.org/pdf/2310.12823.pdf Github地址&#xff1a;https://github.com/THUDM/AgentTuning 在ChatGPT带来了大模型的蓬勃发展&#xff0c;开源LLM层出不穷&#xff0c;虽然这些开源的LLM在各自任务中表现出色&#xff0c;但是在真实环境下作…