关联模型(thinkphp)

发布时间 2023-04-14 17:51:42作者: 天宁哦

转载自https://zhuanlan.zhihu.com/p/73936537

在php中,写接口,是需要做连表查询的,就一个商品的详情,都不知道要查多少表,但框架,支持模型关联,大白话就是说,框架体我们写好了连表查询,同样要查询多个表中数据,自己写join连表查询很麻烦。。

模型关联分为:

一对一 的模型关联和一对多的模型关联,还有的就是多对多的。

先说一下多对多的,多对多的话,推荐就多创建一个表,将两个表连接起来,(RBAC)

那么一对一的和一对多的,是最常用的了

一对一模型关联

先看两个表:

a表
image

b表
image

一对一的模型关联有两种(hasone ,belongsTo);两种都是一对一的模型关联,那么首先就要判断什么情况下用hasone 和什么情况下用belongTo,

看一下那个表中有外键,
image

可以看出来b表中有a表的外键,那么就可以判定a表是主表,b表是从表,那么

如果a表模型想要关联b表模型就用hasone
image

在模型这样写入,控制器中想要这样写
image

这样查询出来的数据
image

可以指定字段获取关联表的一条数据(假如想要spec_name)
image

查询结果
image

那么一对多顾名思义:一个主表关联多个从表
image

主表的模型创建两个方法,每一个方法关联一个从表,
image

其实一对一的理解了,那么一对多的和一对一没有什么区别,有点区别的就是,一对多的不能用bind绑定字段 还有的就是,多一个方法