php – 与Laravel和Eloquent的三方关系

我已经在laravel论坛上发布了这个,但没有人能够提供任何帮助.以为我会在这里发表第二个意见.

我需要一些关于如何构建模型的建议/帮助.这就是我想要做

用户可以是多个团队的成员,但用户可以在每个团队中履行不同的角色.

这个想法是用户根据他们在团队中扮演的角色看到不同的数据/功能集.

所以我想到了类似的东西:

Users
id, name, email, etc...

Teams
id, name, description

Roles
id, name

Team Users
user_id, team_id, role_id

team_members表将3个部分组合在一起.定义用户所属的团队以及他们拥有的角色.

我的问题是:

>这是建立这种关系的最佳方式吗?
>我如何将用户分配给具有角色的团队?
>使用Eloquent,我如何在给定团队中获得用户角色?

解决方法:

从您的场景中,您定义的表看起来很好,将用户分配给团队及其角色,前提是您为表创建了一个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;

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...