关联模型(thinkphp)
转载自https://zhuanlan.zhihu.com/p/73936537
在php中,写接口,是需要做连表查询的,就一个商品的详情,都不知道要查多少表,但框架,支持模型关联,大白话就是说,框架体我们写好了连表查询,同样要查询多个表中数据,自己写join连表查询很麻烦。。
模型关联分为:
一对一 的模型关联和一对多的模型关联,还有的就是多对多的。
先说一下多对多的,多对多的话,推荐就多创建一个表,将两个表连接起来,(RBAC)
那么一对一的和一对多的,是最常用的了
一对一模型关联
先看两个表:
a表
b表
一对一的模型关联有两种(hasone ,belongsTo);两种都是一对一的模型关联,那么首先就要判断什么情况下用hasone 和什么情况下用belongTo,
看一下那个表中有外键,
可以看出来b表中有a表的外键,那么就可以判定a表是主表,b表是从表,那么
如果a表模型想要关联b表模型就用hasone
在模型这样写入,控制器中想要这样写
这样查询出来的数据
可以指定字段获取关联表的一条数据(假如想要spec_name)
查询结果
那么一对多顾名思义:一个主表关联多个从表
主表的模型创建两个方法,每一个方法关联一个从表,
其实一对一的理解了,那么一对多的和一对一没有什么区别,有点区别的就是,一对多的不能用bind绑定字段 还有的就是,多一个方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!