获取有关数据透视列的详细信息 [Laravel 5]
Get details about pivot column [Laravel 5]
我有 3 个 table:Project
、Group
、User
和一个关系枢轴 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_id
、user_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
}
我有 3 个 table:Project
、Group
、User
和一个关系枢轴 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_id
、user_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
}