2017-03-18 70 views
1

我有4個表中我的數據庫:Laravel 5.4 |從透視表中讀取數據

表1:類別

---|------ 
id | name 
---|------ 
1 | Cars 
我已經定義以下關係

在 '類別' 模型類:

class Category { 
    public function fields() { 
     return $this->belongsToMany('App\Field'); 
    } 
} 

表2:字段

id | name 
---|------- 
1 | Make 

在「字段」模型I類定義了下列關係:

class Field { 
    public function categories() { 
     return $this->belongsToMany('App\Category'); 
    } 
} 

表3:Field_Options

field_id | value 
---------|------- 
1  | Audi 
1  | BMW 

在 'FieldOption' 模型I類定義了下列關係:

class FieldOption extends Model 
{ 
    public function field() { 
     return $this->belongsTo('App\Field'); 
    } 
} 

表4:Category_Field

category_id | field_id 
------------|------- 
1   | 1 

現在我需要獲取category_id = 1的所有字段和field_options。我怎樣才能使用Laravel實現這一目標?

謝謝!

回答

0

首先定義字段和FieldOptions

public function options() { 
    return $this->hasMany('App\FieldOption'); 
} 

關係然後你可以貪婪加載這樣

$category = Category::with('fields.options')->find(1); 
//Get category 1, with all fields and their respectif fieldOptions 
+0

感謝所有關係非常。有用!!! – whitecollar