ThinkPHP技术群: 828567087

预载入查询

$data = User::with('profile')->select();halt($data->toArray());

1. 数据表


创建做测试用的表

-- 用户表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户id',`username` varchar(255) NOT NULL COMMENT '用户名',`password` char(32) DEFAULT NULL COMMENT '登陆密码',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='用户表';
INSERT INTO `user` VALUES (1, 'liang', 'e10adc3949ba59abbe56e057f20f883e');
INSERT INTO `user` VALUES (2, 'zhangsan', 'e10adc3949ba59abbe56e057f20f883e');
INSERT INTO `user` VALUES (3, 'laowang', 'e10adc3949ba59abbe56e057f20f883e');
INSERT INTO `user` VALUES (4, 'wangwu', 'e10adc3949ba59abbe56e057f20f883e');
INSERT INTO `user` VALUES (5, 'xiaosun', 'e10adc3949ba59abbe56e057f20f883e');-- 用户资料表
DROP TABLE IF EXISTS `profile`;
CREATE TABLE `profile` (`user_id` int(11) DEFAULT NULL COMMENT '用户id',`age` tinyint(4) DEFAULT NULL COMMENT '年龄',`mobile` bigint(20) DEFAULT NULL COMMENT '手机号',`gender` char(1) DEFAULT NULL COMMENT '性别'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户资料表';
INSERT INTO `profile` VALUES (1, 20, 12305, '男');
INSERT INTO `profile` VALUES (2, 30, 10086, '女');
INSERT INTO `profile` VALUES (5, 40, 10010, '男');

2. 用户模型定义一对一关联方法


public function profile()
{// hasOne('关联模型类名', '外键', '主键');// 用户资料表的外键字段 user_id, 默认为当前模型名 + _id// 用户表的主键字段 id, 默认为当前模型主键 $pk 属性的值return $this->hasOne(Profile::class, 'user_id', 'id');
}

3. 一对一关联支持额外的方法


一、bind():绑定关联表的属性到父模型属性

public function profile()
{return $this->hasOne(Profile::class, 'user_id', 'id')// bind(['字段', '别名' => '字段'])->bind(['age', 'new_mobile' => 'mobile']);
}

二、其他方法

public function profile()
{return $this->hasOne(Profile::class, 'user_id', 'id')// 追加获取器->append(['checked'])// 隐藏关联表的属性->hidden(['age']);
}

TP6.0 一对一模型关联 hasOne相关推荐

  1. php一对一模型关联,通过实例学习Laravel模型中的一对一关联关系

    通过实例学习Laravel模型中的一对一关联关系 一.前言 Laravel遵循[约定优于配置]的原则.PHP开发者只需要遵循Laravel框架的原则,就能减少大量的工作,这便是Laravel的魅力之一 ...

  2. php一对一模型关联,thinkphp 模型关联一对一排序

    `{"code": 1, "msg": "操作成功", "data": { "list": [{ & ...

  3. 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-7.分类的模型关联和通用CRUD接口

    技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-7.分类的模型关联和通用CRUD接口 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-1.工具和 ...

  4. php模型分页代码,ThinkPHP6.0模型关联分页

    模型关联分页简单案例,标签关联文章,对文章进行分页,上一篇文章写得比较繁琐,这里可以将问题拆解成一对多关系,那么问题就迎刃而解了. 我们可以通过查询tag直接拿到tag_id,通过中间表和文章表关联一 ...

  5. sequelize模型关联_Sequelize 中文API文档-3. 模型(表)之间的关系/关联

    模型(Model)之间存在各种各样的关系,如:一对一(One-To-One ).一对多(One-To-Many)等.模型间的关系本质上是对其代表的数据库中表之间的关系描述,通过这些关系可以实现数据库中 ...

  6. 黑马lavarel教程---10、lavarel模型关联

    黑马lavarel教程---10.lavarel模型关联 一.总结 一句话总结: 1.模型关联比较方便,一次定义,后面都可以使用 2.关联关系 使用动态属性进行调用 1.一对多,多对多实例? 一对多: ...

  7. 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)

    [SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例 ...

  8. Laravel源码分析之模型关联

    上篇文章我们主要讲了Eloquent Model关于基础的CRUD方法的实现,Eloquent Model中除了基础的CRUD外还有一个很重要的部分叫模型关联,它通过面向对象的方式优雅地把数据表之间的 ...

  9. Laravel核心解读--Database(四) 模型关联

    Database 模型关联 上篇文章我们主要讲了Eloquent Model关于基础的CRUD方法的实现,Eloquent Model中除了基础的CRUD外还有一个很重要的部分叫模型关联,它通过面向对 ...

  10. sequelize模型关联_Node.js Sequelize 模型(表)之间的关联及关系模型的操作

    Sequelize模型之间存在关联关系,这些关系代表了数据库中对应表之间的主/外键关系.基于模型关系可以实现关联表之间的连接查询.更新.删除等操作.本文将通过一个示例,介绍模型的定义,创建模型关联关系 ...

最新文章

  1. laravel5.4 关于数据填充的知识
  2. 研究优雅停机时的一点思考
  3. ExpressionFuncT,TResult和FuncT,TResult
  4. 文巾解题 26. 删除有序数组中的重复项
  5. php 二维数组 根据某个字段排序
  6. vue调用methods里的方法
  7. 位运算实现加减乘除四则运算(Java)
  8. 工作222:title写活
  9. Linux远程连接与sshd服务安全设定
  10. C语言和C++中Struct区别
  11. android 代码设置像素,【Android实例】用设计原则来重构1像素保活代码
  12. 微信、支付宝、百度(drawImage及canvasGetImageData、支付宝(getImageData))踩坑,uni-app 获取图片底色像素值
  13. 360开源的插件化框架Replugin深度剖析
  14. 解决word中Mathtype按钮灰色问题(亲测有效)
  15. 北京车管所 与 换领驾驶证过程
  16. 图的表示(Adjacency List + Adjacency Matrix)
  17. 香港希玛眼科集团第二届眼科精准医疗国际会议在京启幕
  18. 可视化创建企业管理app
  19. android extra_shortcut_icon,Android自动创建shortcut
  20. 31年前的Beyond演唱会,是如何超清修复的?(推荐)

热门文章

  1. android中java中的开方
  2. c语言打印星号对勾,Intellij常用快捷键记录
  3. bartlett方差齐性检验_仅有两独立样本的样本量、均值和标准差,在SPSS进行T检验...
  4. 等保测评机构推荐证书撤销,纳入国家认证体系
  5. php怎么将农历转换成公历,PHP实现阳历到农历转换的类实例
  6. 探索硅谷奇迹的本质--周末荐书之《硅谷之谜》
  7. 《深入理解RPC框架原理与实现 华钟明》读书笔记
  8. php 去除单引号,php如何去除双引号
  9. 无法启动计算机打印机服务程序,Windows10下使用打印机时提示打印后台处理程序服务没有运行怎么办...
  10. 批量将一个 PDF 文件按固定页数拆分成多个小的 PDF 文件