TP5.1框架中的模型关联
一对一关联
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字段名'],默认为当前的关联方法名作为字段前缀
多态类型别名(可选):数组方式定义
TP5.1框架中的模型关联的更多相关文章
- python-关键字驱动接口框架中,接口关联字段进行值替换的实现方式
前言 编写关键字驱动的接口自动化测试框架中,通过不同的取值方式,将需要关联的字段以及取出的值放到一个空字典中,需要将关联的字段进行值替换,下面是替换的实现方式 实现思路 import re temp_ ...
- laravel中的模型关联之(一对多)
一对多 一对多就相当于,一个用户有多篇文章,这多篇文章都对应一个用户 这是一张文章表,一个用户有多篇文章,这里是在用户模型里面获取用户的所有文章, 第二个参数就是获取的模型文章表(post)里面的用户 ...
- laravel中的模型关联之(一对一)
一对一 一对一的关联关系就相当于,赞和文章之间的关系,一个用户只能赞一次一个文章,只能和文章发生一次关系, 用户和赞的文章是唯一的一份,这里举得是判断用户是否赞过某个文章 一个参数都是你要获取的模型, ...
- 「七天自制PHP框架」第四天:模型关联
往期回顾:「七天自制PHP框架」第三天:PHP实现的设计模式,点击此处 原文地址:http://www.cnblogs.com/sweng/p/6624845.html,欢迎关注:编程老头 前阵子在网 ...
- pycaffe︱caffe中fine-tuning模型三重天(函数详解、框架简述)
本文主要参考caffe官方文档[<Fine-tuning a Pretrained Network for Style Recognition>](http://nbviewer.jupy ...
- TP5模型关联问题
在使用模型关联时:假如有表 merchant商户表 m_store 店铺表 m_store_ref 商户店铺关联表 user 普通用户表 $mer = Merchant::with([ ' ...
- TP5.1:将外部资源引入到框架中(css/js/font文件)
为了让我们的框架形式变得更加好看,我们需要加入Bootstrap和Jq文件到框架中 1.通过Bootstrap和jq官网进行相关文件的下载 (1)Bootstrap下载地址:https://v3.bo ...
- ThinkPHP 5.0.7 + MySQL 构建RESTful API的小程序---02-ThinkPHP5中的orm的模型关联
ThinkPHP5.0中的操作ORM的一对一,一对多,多对多的操作: 由以下表举例: banner表的设计 id name description delete_time update_time 1 ...
- 制作类似ThinkPHP框架中的PATHINFO模式功能
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...
随机推荐
- [Luogu] 矩阵加速(数列)
题面:https://www.luogu.org/problemnew/show/P1939 题解:https://www.zybuluo.com/wsndy-xx/note/1153810
- 【luoguP1840】 Color the Axis_NOI导刊2011提高(05)
题目描述 在一条数轴上有N个点,分别是1—N.一开始所有的点都被染成黑色.接着我们进行M次操作,第i次操作将[Li,Ri]这些点染成白色.请输出每个操作执行后剩余黑色点的个数. 输入格式 输入一行为N ...
- Win内核原理与实现学习笔记3-windows系统结构
1.概述 1.1windows采用了双模式(dual mode)结构来保护操作系统本身,以避免被应用程序的错误而波及.操作系统核心运行在内核模式(kernel mode)下,应用程序的代码运行在用户模 ...
- Ubuntu 14.04 更换为阿里云源
#备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak#编辑sudo vim /etc/apt/sources.list,清空后,加入以下 ...
- 调皮捣蛋的Linux下有趣终端的合集
*本文作者:国光,转载自 FreeBuf.COM,原文地址:https://www.freebuf.com/news/144050.html 前言 刚开始接触Linux的我们,肯定认为Linux系统就 ...
- install slax record
#!/usr/bin/bash#apt update#apt upgradeapt install build-essential cmake gdb git vim binutils-doc cpp ...
- 总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .
总结:Apache/Tomcat/JBOSS/Nginx区别 .1.Apache是Web服务器,Tomcat是应用(Java)服务器.Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用. ...
- Linux 操作memcache命令行
telnet 127.0.0.1 11211 连接 memcache stats 查看 memcache 状态 状态说明: pid memcache服务器的进程ID uptime 服务器已经运行的秒数 ...
- Visual Studio Team Systems
https://www.cnblogs.com/33568639/archive/2008/12/29/1364222.html https://baike.sogou.com/v7818386.ht ...
- Android 显示系统:SurfaceFlinger详解
一.Android系统启动 Android设备从按下开机键到桌面显示画面,大致过程如下图流程: 开机显示桌面.从桌面点击 App 图标到 Activity显示在屏幕上的过程又是怎样的呢?下面介绍And ...