这是用户模型:
class User extends Model
{
/**
* The roles that belong to the user.
*/
public function roles()
{
return $this->belongsToMany('App\Role');
}
}
这是榜样:
class Role extends Model
{
/**
* The users that belong to the role.
*/
public function users()
{
return $this->belongsToMany('App\User');
}
}
正如您所看到的,这两个模型之间存在多对多关系。
现在我想得到一个用户角色的ID数组。为此我写了这个:
$user = User::find($id);
return $user->roles()->get(['roles.role_id']);
但上面的代码返回一个数组,其中包含引用用户拥有的每个角色ID的对象:
[
{
"role_id": 9,
"pivot": {
"user_id": 2,
"role_id": 9
}
},
{
"role_id": 14,
"pivot": {
"user_id": 2,
"role_id": 14
}
}
]
但是我想返回一个角色的ID数组,如下所示:
[9,14,......]
我怎么能那样做?
lists()
雄辩函数对此很有帮助。请注意,它返回的是一个集合,而不是数组,因此,如果必须使用数组,则还需要toArray
。
$roles = $user
->roles()
->lists('roles.role.id')
->toArray();
更新:(适用于版本)
在laravel版本中不建议使用list()方法
$roles = $user
->roles
->pluck('id')
->toArray();
如果您需要字符串,例如刀片中的字符串,则可以在不使用toArray()附件的情况下使用:
$roles = $user
->roles
->pluck('id');
我在一个有这种结构的拉威尔项目中工作 用户:id | first | u name |。。。 角色:id|name 分配的角色:id |用户id |角色id 我认为这是很明显的:p 用户模型 角色模型 我正在寻找一种方法来获取所有具有指定角色(在本例中为“教师”)的用户。我试过这个: 但这总是返回一个包含所有用户的数组。 有人知道为什么会这样吗?谢谢
我是LDAP的新手,我尝试过在OpenLDAP上实现RBAC。我创建了一些用户(inetOrganizationPerson)并将它们放在组中(groupOfNames)。接下来,我创建了一些角色(organizationalRole)并将它们与用户组关联(RoleIncuspant),而不是直接将它们与用户关联。 1)/usr/local/bin/ldapsearch-x-b'ou=groups
不管怎样,感谢所有人的回答。
我正在尝试评估身份验证用户的角色数组。100和102是我要检查的角色值。如果身份验证用户具有其中之一,则返回。这可能吗?以下是我目前的代码: 我不希望一次重复检查一个,因为处理代码太多,会使文件过长。
我已经基于命名的路由为Laravel(4.2)创建了自定义角色管理器,例如: 基本上,任何注册为
接口说明 获取当前登录用户id 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/user/1.0.0/getId 是否需要登录 是 请求字段说明 无 响应字段说明 参数 类型 说明 userId String 登录用户id 响应成功示例 { "code": 200, "data": { "userId":