我对roles
和permissions
模型有多对多的关系。我有一个动作控制器,用于附加和分离用户的权限。如何检查某些权限是否被分离到某个角色?
控制器:
class RolePermissionController extends Controller
{
// POST /roles/1/permissions/2/sync
// BODY {isAllowed: true}
// $role - instance of role model with id == 1
// $permission - instance of permission model with id == 2
// roles and permissions has many to many relationship
public function synchronize(Request $request, Role $role, Permission $permission)
{
$this->authorize($permission);
$this->validate($request, [
'isAllowed' => 'required|boolean'
]);
// I want to check here if the permission is attached to the role
if ($request->input('isAllowed')) {
$role->perms()->attach($permission);
} else {
$role->perms()->detach($permission);
}
}
}
发布于 2016-09-24 21:38:20
$role->whereHas('perms', function($query) use($permission) { $query->where('perms.id', $permission->id); })->count();
或者,假设您已经加载了权限:
$role->perms->contains(function($value) use($permission) { return $value->id == $permission->id; })
发布于 2018-05-12 16:24:53
我简单地使用第一个模型的关联方法来访问连接表的查询构建器,然后请求关联模型的列的计数。在你的案例中,我认为:
$role->->where(‘permission_id’,$permission->id)perms()->count()>0
https://stackoverflow.com/questions/39678845
复制相似问题