ThinkPHP5下has_one和belongs_to的區別

ThinkPHP5下has_one和belongs_to的區別

在查閱了相關Tp5開發文檔和相關博客後,總結出關於belongsTo和hasOne的區別,主要是看你是在哪個model(模型)中編寫這個關聯關係,父關聯對象就是在父關聯model(本文是在Products的model類)下編寫的關聯模型。下面是兩種關聯的使用時機。php


has_one(或has_many):外鍵在子關聯對象中

例子:this

//父關聯對象表
Products{
 id
 product_name
}
//子關聯對象表
Image{
 image_id
 img_name
 product_id    //foreign key
}
在TP5中的寫法爲:
//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
}
在TP5中的寫法爲:
//belongsTo方法的參數包括:
//belongsTo(‘關聯模型名’,‘外鍵名’,‘關聯表主鍵名’,[‘模型別名定義’],‘join類型’);
//默認的join類型爲INNER
//寫在Products的model類中
public function Img(){
$this->belongsTo('Image','img_id','id');
}
相關文章
相關標籤/搜索