[英]Laravel Eloquent Relationships between multiple tables
我正在研究laravel關系,但我只能看到2個表之間的關系……我想知道是否存在可以與3個表一起使用的一對一關系?
例如,我有以下表格
websites
preferences
websites_preferences
一個網站具有一個首選項,但是通過sites_preferences表可以建立關系。
任何幫助都會很棒。
干杯,
如果只需要一對一關系,則不需要website_preferences表。
但是,您可以執行以下操作->具有多次通過關系:
class Website extends Model
{
public function preferences()
{
return $this->hasManyThrough('App\Preferences', 'App\Website_preferences');
}
}
資料來源: https : //laravel.com/docs/5.3/eloquent-relationships#has-many-through
無需將中間表用於一對一關系。
如果要使用網站和首選項之間的多對多關系,可以執行以下操作。
為此,您需要中間表“ website_preferences”
class Website extends Model
{
public function preferences()
{
return $this->belongsToMany('App\Preference', 'website_preferences', 'website_id', 'preference_id');
}
}
class Preference extends Model
{
public function websites()
{
return $this->belongsToMany('App\Website', 'website_preferences', 'preference_id', 'website_id');
}
}
引用此鏈接,可能會有所幫助https://laravel.com/docs/5.3/eloquent-relationships#many-to-many
實際上,一對一關系不需要第三張表。 第三張表是多對多的。 您可以將preferences
表的primary key
用作websites
表的外鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.