获取有关数据透视列的详细信息 [Laravel 5]

Get details about pivot column [Laravel 5]

我有 3 个 table:ProjectGroupUser

和一个关系枢轴 table: project_group with colmuns: id project_id group_id 和数据透视字段 user_id

我知道如何参加所有小组和项目:

Project::find(1)->groups()->get();

groups() 是项目模型中的 belongToMany 函数。

问题是我不知道如何获取特定项目的所有用户。我需要获取项目以及该项目的所有用户名和 ID,对此有什么解决方案吗?

提前致谢

您可以尝试在您的 Project.php 模型上添加枢轴关系

public function users() {
    return $this->hasMany(App\User::class, 'project_group');
}

然而,这可能会产生误导,因为 project_group 应该是 project table 和 group table 之间的支点 table。 user_id 不属于那里。

使用 group_iduser_id 创建第二个名为 group_user 的枢轴 table。然后你可以在你的 Group.php 模型上使用它:

public function users() {
    return $this->hasMany(App\User::class, 'group_user');
}

一个例子是:

$project = Project::find(1);
foreach($project->groups as $group) {
    $users = $group->users; // Now you should have access to all the users for each group
}