我已经在laravel论坛上发布了这个,但没有人能够提供任何帮助。以为我会在这里发表第二个意见。
我需要一些关于如何构建模型的建议/帮助。这是我正在尝试做的事情
用户可以是多个团队的成员,但用户可以在每个团队中履行不同的角色。
根据他们在团队中扮演的角色,用户可以看到不同的数据/功能集。
所以我想到了类似的东西:
Users
id, name, email, etc...
Teams
id, name, description
Roles
id, name
Team Users
user_id, team_id, role_id
team_members
表会将3个部分绑在一起。定义用户所属的团队以及他们拥有的角色。
我的问题是:
答案 0 :(得分:2)
从您的场景中,您定义的表看起来很好,将用户分配给团队及其角色,前提是您为表创建了一个TeamMember模型,您可以执行以下操作:
//assign or update user team or role
$new_member = TeamMember::firstorCreate(array(
'user_id' => $this->user->id,
'team_id' => $team_id,
'role_id' => $role_id,
));
//accessing the role of a user on a team
$role = TeamMember::where('user_id', '=', $user_id)
->where('team_id', '=', $team_id)->first()->role_id;
//get the name of the role
$role_name = Role::find($role)->name;