一对一关联

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. 036_监控 HTTP 服务器的状态(测试返回码)

    #!/bin/bash #设置变量,url 为你需要检测的目标网站的网址(IP 或域名)url=http://192.168.4.5/index.html #定义函数 check_http:#使用 c ...

  2. decompiler

    .NET Reflector  trial version http://www.red-gate.com/products/dotnet-development/reflector/ 破解版本 .N ...

  3. UCOSIII(二)

    #include "sys.h" #include "delay.h" #include "usart.h" #include " ...

  4. Linux下的电路设计辅助软件

    造冰箱的大熊猫@cnblogs 2019/8/21 最近调研了以下开源的电路设计辅助软件(EDA),汇总如下 1.gEDA 官网:geda-project.org 老牌的开源EDA软件,诞生于上世纪9 ...

  5. 数据结构实验之栈与队列五:下一较大值(一)(SDUT 3332)

    #include <bits/stdc++.h> using namespace std; int a[1005]; int main() { int t,n,i,j; while(~sc ...

  6. 关于pycharm+opencv没有代码提示的问题解决方法记录

    代码可以看出实际我们引入的应该是cv2.cv2下面. 所以我们代码只需要import cv2.cv2 as cv 即可. 记着要重新启动下pycharm哦. 可以参考: https://blog.cs ...

  7. Linux 修改文件夹的用户组权限

    将ubsadm文件夹所属用户修改为userschown -R ubsadm:users /home/ubsadm 此命令将用户123的用户组改为rootusermod -g 123 root

  8. Maven的New中没有Servlet问题(IDEA)

    1.问题 第一次使用Maven骨架创建Web项目的时候,遇到了 New 里面没有 servlet 的问题. 2.原因 经过查询,是因为IDEA检测到项目中没有导入相关的 jar 包导致. 3.解决方法 ...

  9. 笔记七(编写第一个UEFI程序)

    搭建好uefi开发环境之后,在MyWorkspace文件夹中建立一个文件夹ExamplePkg; ,然后在ExamplePkg文件夹中创建HelloWorld文件夹,Include文件夹,Exampl ...

  10. 在Winform中屏蔽UnityWebPlayer的右键以及自带Logo解决方案整理

    根据项目的需要,对已经完成的Unity三维模型以及游戏要使用Winform进行包装,也就是使用Winform做一层外壳.因此在展示Unity的时候使用到了UnityWebPlayer这个插件,对于此插 ...