详解ThinkPHP5下has_one和belongs_to的区别

ThinkPHP5下has_one和belongs_to的区别
在查阅了相关Tp5开发文档和相关博客后,总结出关于belongsTo和hasOne的区别,主要是看你是在哪一个model(模型)中编写这个关联关系,父关联对象就是在父关联model(本文是在Products的model类)下编写的关联模型。下面是两种关联的使用时机。

has_one(或has_many):外键在子关联对象中
例子:

//父关联对象表

Products{

 id

 product_name

}

//子关联对象表

Image{

 image_id

 img_name

 product_id    //foreign key

}
//模型
//hasOne方法的参数包括:

//hasOne('关联模型名','外键名','主键名',['模型别名定义'],'join类型');

//默认的join类型为INNER

//写在Products的model类中

public function Img(){

  $this->hasOne('Image','product_id','id');

}

belongs_to:外键在你父联对象中

//父关联对象表:

Product{

 product_id

 img_id    //foreignkey

 product_name

}

//子关联对象表

Image{

 id     

 img_name

}
//模型
//belongsTo方法的参数包括:

//belongsTo(‘关联模型名’,‘外键名’,‘关联表主键名’,[‘模型别名定义’],‘join类型’);

//默认的join类型为INNER

//写在Products的model类中

public function Img(){

$this->belongsTo('Image','img_id','id');

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值