我有三个数据库表:
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()类时,会获得每个属性,而不是用户的内容...而是每个用户。
答案 0 :(得分:0)
使用Many-to-many relationship时,可以使用pivot
属性访问中间表。我看到您在关系中已经有了withPivot
指令,因此您可以开始使用。
foreach($profile->attribute as $attribute) {
$attribute->pivot->content; // The content in the intermediate table
}