Laravel Eloquent属于很多

时间:2019-03-05 16:54:18

标签: php laravel eloquent relationship

我有三个数据库表:

attributes
---------------------------------
| id | name | showed_name | class

attributes_profiles
----------------------------------------------
| id | attribute_name | profile_id | content |

profiles
------------
| id | ... |

当用户访问个人资料站点时,我想从表中加载所有属性,但是我也希望该用户(id)从中间表(数据透视)中加载内容。

public function Attribute(){
  return $this->belongstoMany('App\Attribute', 'attributes_profiles', 'profile_id', 'attribute_name','id','name')->withPivot('content');
}

有了Profiles模型中的此类,我将无法获得所有属性。

当我在属性模型中使用Profiles()类时,会获得每个属性,而不是用户的内容...而是每个用户。

1 个答案:

答案 0 :(得分:0)

使用Many-to-many relationship时,可以使用pivot属性访问中间表。我看到您在关系中已经有了withPivot指令,因此您可以开始使用。

foreach($profile->attribute as $attribute) {
  $attribute->pivot->content; // The content in the intermediate table
}