Laravel:获取多对多列数据

时间:2014-08-21 10:35:31

标签: laravel many-to-many eloquent

哟所有,

我有一个用户关系数据透视表数据表,如下所示:

id | user_id | relation_id | relationship
1    4         2             tutor
1    4         3             parent

由于各种原因,该表将用户与其他用户联系起来。

我正在尝试获取$ user中的关系列。我设法拉动了相关用户 详情没问题 - $user->relations

然而,我只需要得到这种关系 - 例如。导师或家长。 $relative->pivot->relationship

我没有骰子

有什么想法吗?感谢您抽出宝贵时间提供帮助。

@foreach($user->relations as $index=>$relative)
    {{ $relative->first_name . ' ' . $relative->last_name}}
    {{ $relative->pivot->relationship }}
@endforeach

1 个答案:

答案 0 :(得分:2)

要访问->pivot->whatever,您需要将withPivot('whatever')添加到关系定义中:

public function relations()
{
  return $this->belongsToMany('Relation')->withPivot('relationship');
}

注意:我不会在此处使用relationsRelation名称,因为它会产生误导,并且可能会与Eloquent\Model内容发生冲突。