Laravel 5.2 - 多重关系

时间:2016-04-29 13:33:00

标签: php laravel laravel-5 eloquent laravel-5.2

鉴于此表结构:

Table structure

我的模特有members关系。

public function members() {
    return $this->belongsToMany('App\User', 'group_members')->withPivot('status', 'right_rid')->withTimestamps();
}

当我调用此函数时,它将返回特定函数的成员。

现在我想调用一个名为rights的函数或类似的函数,它将在一行代码中返回right_idrights表的类型。

现在,当我想要成员的right_id时,我会使用这一行:

$group->members->where('id', Auth::user()->id)->first()->pivot->right_id

但是我没有rights类型,因为right_id位于group_members表中。

我希望它可以像这样工作:

$group->members->where('id', Auth::user()->id)->first()->rights

我希望这是足够的信息,可以给我一些建议,甚至是解决这个问题的方法。

我知道这也可以通过制作自定义查询来完成,但我喜欢Laravel的工作方式。

1 个答案:

答案 0 :(得分:-1)

您可以轻松制作GroupMember模型并执行以下操作......

GroupMember::where('user_id', Auth::user()->id)->where('group_id', $group_id)->with(['rights', 'groups', 'users'])->get();

这假设您的rights模型中包含groupsusersGroupMember方法。每个都应该是belongsTo