2017-03-18 64 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