2017-08-04 122 views
1

我有一個表格,其中包含下面的字段。我只是想通過類型字段值來連接表,例如,如果類型字段包含經驗值,那麼連接應該以經驗表引用association_id字段,並且對於教育也是一樣。如何使用Laravel查詢生成器按字段值連接不同的表?

- id 
- title 
- association_id 
- type (experience,education) 

任何幫助將不勝感激。

+0

你只有兩個'enum'型列類型?如果它可以使用sql來實現,那麼在查詢構建器中顯然是可行的。 –

+0

[有兩種類型標誌的表上的Laravel關係可能重複](https://stackoverflow.com/questions/35057540/laravel-relationships-on-a--a-table-with-two-types-of-flags) –

+0

這不是一個重複的問題,因爲我詢問查詢生成器不是用於雄辯 –

回答

0

您可以使用多態關係

主要型號:

class Association extends Model { 
    public function associable() 
    { 
     return $this->morphTo(); 
    } 
} 

先進經驗型號:

class Exprience extends Model { 
    public function associates() 
    { 
     return $this->morphMany(Association::class, 'associable'); 
    } 
} 

教育模式:

class Education extends Model { 
    public function associates() 
    { 
     return $this->morphMany(Association::class, 'associable'); 
    } 
} 

你也應該增加兩個額外的外商投資企業LDS你的主模型表格:

associable_id - integer 
associable_type - string 

額外的信息:https://laravel.com/docs/5.4/eloquent-relationships#polymorphic-relations

+0

先生我正在使用查詢生成器而不是雄辯,如果您可以發佈關於查詢生成器連接。 –