Laravel 5.4 |从数据透视表中获取数据

时间:2017-03-18 05:54:30

标签: php laravel laravel-5 laravel-5.4

我的数据库中有4个表:

表1:类别

---|------
id | name
---|------
1  | Cars

In' Category' model class我定义了以下关系:

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

表2:字段

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

In' Field' model class我定义了以下关系:

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

表3:Field_Options

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

在' FieldOption' model class我定义了以下关系:

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实现这一目标?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先定义Field和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