Laravel 5.4 |正在从 Pivot 获取数据 Table

Laravel 5.4 | Fetching data from Pivot Table

我的数据库中有 4 个表:

Table 1: 类别

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

在'Category'模型class中我定义了以下关系:

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

Table 2: 字段

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

在'Field'模型class中我定义了以下关系:

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

Table 3: Field_Options

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

在'FieldOption'模型class中我定义了以下关系:

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

Table 4: Category_Field

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

现在我需要为 category_id=1 获取所有字段和 field_options。如何使用 Laravel?

实现此目的

谢谢!

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