背景:一个用户可以在零,一个或多个部门 .

我正在尝试使用Entrust package by Zizaco在我的应用程序中设置角色和权限 . 这似乎相当简单,但是我的使用情况比它所提供稍有不同外的开箱,如果我理解正确的,因为它应该是一个角色附加到用户 .

在我的例子中,用户可以在不同的部门中拥有不同的角色 . 例如,部门A中的用户John可以是管理员,而部门B中的John只是审阅者 . 如果我按原样使用Entrust,那么John将在他所属的两个部门中同时拥有管理员和审阅者 .

我曾尝试创建用户和部门,然后修改委托在department_user表中工作过的“身份证”之间的数据透视表,但我不能说正常工作,当我尝试做一些简单的像下面创建一个表显示部门中的哪些用户具有什么角色:

$department = Department::find(1);
$users = $department->users;

有没有办法可以修改Entrust这样的工作?或者这种用例有更好的包装吗?所有部门的角色都是相同的,为了提高效率,我希望避免创建部门特定的角色(如会计管理员,生物管理员等)