2017-01-30 196 views
0
加入3個表

所以我有3個表使用Laravel雄辯

size_sets - id, name 
sizes - id, name 
size_set_sizes - size_id, size_set_id 

我要定義size_set模型的關係,將檢索所有sizes用於該sizeset

喜歡的東西:

public function sizes() 
    { 
     //define relationship here 
    } 

方法sizes應該從size表中檢索名稱,通過size_set_sizessize_set模型...

我的應用程序是非常動態的,因此我需要去這個結構。我嘗試了hasManyThrough關係,但無法讓它工作。

+0

看起來像多對多:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many。你可能想在你的問題中清理你的3表格定義,因爲它非常容易混淆 - 使用項目符號或 – Andrew

回答

1

使用belongsToMany()關係如:

class Size extends Model 
{ 
    public function sizeSets() 
    { 
     return $this->belongsToMany(SizeSet::class, 'size_set_sizes'); 
    } 
} 

class SizeSet extends Model 
{ 
    public function sizes() 
    { 
     return $this->belongsToMany(Size::class, 'size_set_sizes'); 
    } 
} 

然後,你可以這樣做:

$sizeSet = SizeSet::with('sizes')->find($id); 

然後$sizeSet->sizes將返回尺寸的集合,用於該尺寸集。

+0

正是我所做的 – Spidi