thinkphp5 模型关联 总结(1)

浏览:4776 发布日期:2018/11/21 分类:ThinkPHP5专区 关键字: ThinkPHP5 模型 关联
模型方法:
hasOne 一对一
belongsTo 一对一
hasMany 一对多
hasManyThrough 远程一对多
belongsToMany 多对多
morphMany 多态一对多
morphOne 多态一对一
morphTo 多态

hasOne('关联模型【关联模型类名】','外键【当前模型的外键】','主键【关联模型的主键】');
hasMany('关联模型【关联模型类名】','外键【当前模型的外键】','主键【关联模型的主键】');
hasManyThrough('关联模型','中间模型','中间模型的外键【与关联模型的外键】','关联模型的外键【与中间模型关联的外键】','模型的主键【当前模型的主键】');
bolongsTo('关联模型【关联模型类名】','外键【当前模型的外键】','主键【关联模型的主键】');
belongsToMany('关联模型','中间表','外键','关联键');
morphMany('关联模型','多态字段','多态类型');
morphOne('关联模型','多态字段','多态类型');
morphTo('多态字段',['多态类型别名']);

类型 关联关系 相对的关联关系
一对一 hasOne belongsTo
一对多 hasMany belongsTo
多对多 belongsToMany belongsToMany
远程一对多 hasManyThrough 不支持
多态一对一 morphOne morphTo
多态一对多 morphMany morphTo

关联关系表示:在当前模型下,使用该模型方法
相对关联表示:在关联模型下,使用该模型方法


即:在当前模型下,我想要有对应的关联类型【比如一对多】,那么我就使用hasmany() 这个方法。【等价于:在关联模型下,使用相对关联的方法,[一对多即使用belongsTo]】

一对一:hasOne()[关联类型] belongsTo()[相对关联]
一对多:hasMany()[关联类型] belongsTo()[相对关联]
远程一对多:hasManyThrough()【跨过中间模型的关联操作】
多对多:belongsToMany()【需要一个中间表,用来记录另外两张表的关联关系】
多态一对多:morphMany()【多态关联类型】
多态一对一:morphOne()【多态关联类型】
多态:morphTo()【多态模型:统一处理多态的关联类型的数据】

最佳答案
评论( 相关
后面还有条评论,点击查看>>