文档章节

TP5.1框架中的模型关联

o
 osc_isezqdgg
发布于 2019/09/18 16:15
字数 694
阅读 17
收藏 0

精选30+云产品,助力企业轻松上云!>>>

一对一关联

hasOne('关联模型','外键','主键');

  • 关联模型(必须):关联的模型名或者类名
  • 外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如user_id
  • 主键:当前模型主键,默认会自动获取也可以指定传入

一对多关联

hasMany('关联模型','外键','主键');

  • 关联模型(必须):模型名或者模型类名
  • 外键:关联模型外键,默认的外键名规则是当前模型名+_id
  • 主键:当前模型主键,一般会自动获取也可以指定传入

远程一对多

hasManyThrough('关联模型','中间模型','外键','中间表关联键','主键');

  • 关联模型(必须):模型名或者模型类名
  • 中间模型(必须):模型名或者模型类名
  • 外键:默认的外键名规则是当前模型名+_id
  • 中间表关联键:默认的中间表关联键名的规则是中间模型名+_id
  • 主键:当前模型主键,一般会自动获取也可以指定传入

多对多关联

belongsToMany('关联模型','中间表','外键','关联键');

  • 关联模型(必须):模型名或者模型类名
  • 中间表:默认规则是当前模型名+_+关联模型名 (可以指定模型名)
  • 外键:中间表的当前模型外键,默认的外键名规则是关联模型名+_id
  • 关联键:中间表的当前模型关联键名,默认规则是当前模型名+_id

多态关联

morphMany('关联模型','多态字段','多态类型');

关联模型(必须):关联的模型名称,可以使用模型名(如Comment)或者完整的命名空间模型名(如app\index\model\Comment)。

多态字段(可选):支持两种方式定义 如果是字符串表示多态字段的前缀,多态字段使用 多态前缀_type多态前缀_id,如果是数组,表示使用['多态类型字段名','多态ID字段名'],默认为当前的关联方法名作为字段前缀。

多态类型(可选):当前模型对应的多态类型,默认为当前模型名,可以使用模型名(如Article)或者完整的命名空间模型名(如app\index\model\Article)。

morphTo('多态字段',['多态类型别名']);

多态字段(可选):支持两种方式定义 如果是字符串表示多态字段的前缀,多态字段使用 多态前缀_type多态前缀_id,如果是数组,表示使用['多态类型字段名','多态ID字段名'],默认为当前的关联方法名作为字段前缀
多态类型别名(可选):数组方式定义

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
ThinkPHP/think-orm

think-orm 基于PHP5.6+ 的ORM实现,主要特性: 基于ThinkPHP5.1的ORM独立封装 支持Mysql、Pgsql、Sqlite、SqlServer、Oracle和Mongodb 支持Db类和查询构造器 支持事务 支持模型和关联 适用于...

ThinkPHP
2017/10/27
0
0
企业级PHP开发框架 - RXThink

RXThinkCMFTP5.1PRO旗舰版 基于 ThinkPHP5.1 +Layui2.5.6 开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理、插件管理、钩子管理、数据库管理、富文本编辑器(已集成ueditor,k...

匿名
2019/01/09
2.8K
6
高效的后台 PHP 框架 - RXThinkCMF

项目介绍 RXThinkCMFTP5.1 基于 ThinkPHP5.1 +Layui2.4.5 开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理、插件管理、钩子管理、数据库管理、富文本编辑器(已集成 ueditor,...

我是牧羊人
2019/07/19
2.8K
3
RXThinkCMF v4.0.0 正式发布,全新升级 UI,提升使用体验!

项目介绍 RXThinkCMFTP5.1PRO旗舰版 基于 ThinkPHP5.1 +Layui2.4.5 开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理、插件管理、钩子管理、数据库管理、富文本编辑器(已集成u...

西里古里
06/20
2K
0
TP5.1让验证码在另外的项目(Electron-vue)里面使用

TP5.1让验证码在另外的项目(Electron-vue)里面使用 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 一般...

归子莫
前天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

签到领金币模块

  最近做了一个签到模块的需求,主要就是签到,根据连签天数提供不同和奖励并在首页展示不同的文案。奖励分为金币和话费,话费也是通过金币的形式发放,但是有效期只有1天。 签到需求 每日...

osc_2frf70qv
10分钟前
13
0
正交多项式介绍及应用

1 正交多项式的定义 1.1 正交多项式定义 定义: 一个多项式序列 ${ {p_n}(x)} _{n = 0}^\infty $,其阶数为 \([{p_n}(x)] = n\) ,对于每一个 \(n\),这个多项式序列在开区间 \((a,b)\) 上关...

osc_mbhfa1vl
11分钟前
8
0
百万级别数据Excel导出优化

前提 这篇文章不是标题党,下文会通过一个仿真例子分析如何优化百万级别数据Excel导出。 笔者负责维护的一个数据查询和数据导出服务是一个相对远古的单点应用,在上一次云迁移之后扩展为双节...

osc_3g4j2ghj
13分钟前
12
0
Java 字符串比较、拼接问题

@ 目录 1.字符串的比较 1. 1 字符串常量池 1.2 String类型的比较方式 1.3 String的创建方式 1.3.1 直接使用“=”进行赋值 1.3.2 使用“new”关键字创建新对象 1.3.3 intern()方法返回的引用地...

osc_bjmmswh6
14分钟前
7
0
EJB到底是什么?(通俗易懂白话文)

1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务 集群"和"企业级开发"吧! 这个问题其实挺关键的,......

onedotdot
15分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部