簡體   English   中英

多個表之間的Laravel雄辯關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM