一对一关联

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框架中的模型关联的更多相关文章

  1. python-关键字驱动接口框架中,接口关联字段进行值替换的实现方式

    前言 编写关键字驱动的接口自动化测试框架中,通过不同的取值方式,将需要关联的字段以及取出的值放到一个空字典中,需要将关联的字段进行值替换,下面是替换的实现方式 实现思路 import re temp_ ...

  2. laravel中的模型关联之(一对多)

    一对多 一对多就相当于,一个用户有多篇文章,这多篇文章都对应一个用户 这是一张文章表,一个用户有多篇文章,这里是在用户模型里面获取用户的所有文章, 第二个参数就是获取的模型文章表(post)里面的用户 ...

  3. laravel中的模型关联之(一对一)

    一对一 一对一的关联关系就相当于,赞和文章之间的关系,一个用户只能赞一次一个文章,只能和文章发生一次关系, 用户和赞的文章是唯一的一份,这里举得是判断用户是否赞过某个文章 一个参数都是你要获取的模型, ...

  4. 「七天自制PHP框架」第四天:模型关联

    往期回顾:「七天自制PHP框架」第三天:PHP实现的设计模式,点击此处 原文地址:http://www.cnblogs.com/sweng/p/6624845.html,欢迎关注:编程老头 前阵子在网 ...

  5. pycaffe︱caffe中fine-tuning模型三重天(函数详解、框架简述)

    本文主要参考caffe官方文档[<Fine-tuning a Pretrained Network for Style Recognition>](http://nbviewer.jupy ...

  6. TP5模型关联问题

    在使用模型关联时:假如有表   merchant商户表   m_store 店铺表  m_store_ref 商户店铺关联表  user 普通用户表 $mer = Merchant::with([ ' ...

  7. TP5.1:将外部资源引入到框架中(css/js/font文件)

    为了让我们的框架形式变得更加好看,我们需要加入Bootstrap和Jq文件到框架中 1.通过Bootstrap和jq官网进行相关文件的下载 (1)Bootstrap下载地址:https://v3.bo ...

  8. ThinkPHP 5.0.7 + MySQL 构建RESTful API的小程序---02-ThinkPHP5中的orm的模型关联

    ThinkPHP5.0中的操作ORM的一对一,一对多,多对多的操作: 由以下表举例: banner表的设计 id name description delete_time update_time 1 ...

  9. 制作类似ThinkPHP框架中的PATHINFO模式功能

    一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...

随机推荐

  1. Linux之创建多个子进程

    /*** fork_test.c ***/ #include<stdio.h> #include<stdlib.h> #include<unistd.h> int ...

  2. Appium获取toast消息

    Android获取toast,需要在参数里设置automationName:Uiautomator2 设置设备的信息 desired_caps = { 'platformName': 'Android ...

  3. 高逼格Linux命令,忙的飞起

    以mac为例,先安装Homebrew 第一个命令:sl 安装命令:brew install sl 运行:sl 效果:小火车从右向左跑起来,污污污 第二个命令:cmatrix 安装命令:brew ins ...

  4. java代理,手把手交你写java代理

    一:常用的java代理模式 一般经常做java开发的知道java的代理模式一共有三种,第一种也就是静态代理,这种用法比较简单,没有什么魔法棒,比较好理解,另外两种分别是JDK代理和cglib代理,他们 ...

  5. Python学习日记(五)——初识函数(set、深浅拷贝、三目运算、函数、全局变量和局部变量)

    基本数据类型补充 set set集合,是一个无序且不重复的元素集合 #创建 s = {11,22,33,44}#类似字典 s = set() #转换 l = (11,22,33,44) s1 = se ...

  6. elasticsearch _mapping api

    https://www.elastic.co/guide/cn/elasticsearch/guide/current/mapping-intro.html通过 /_mapping ,我们可以查看 E ...

  7. qt 创建及调用QT的 DLL

    先讲一下对QT动态链接库的调用方法,主要包括: 1.显式链接DLL,调用DLL的全局函数,采用Qt的QLibrary方法 2.显示链接DLL,调用DLL中类对象.成员函数.(通过对象即可实现类成员函数 ...

  8. 解析PHP的self关键字

    PHP群里有人询问self关键字的用法,答案是比较明显的:静态成员函数内不能用this调用非成员函数,但可以用self调用静态成员函数/变量/常量:其他成员函数可以用self调用静态成员函数以及非静态 ...

  9. [oracle]oracle表在什么情况下会被锁住(转载)

    DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它 ...

  10. [Oracle]关于回滚段的一些转贴摘录

    ORACLE 回滚段 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段 ...