如何检查模型实例是否附加到laravel 5.3中的相关模型实例?

如何检查模型实例是否附加到laravel 5.3中的相关模型实例?,laravel,eloquent,laravel-5.3,Laravel,Eloquent,Laravel 5.3,我有角色和权限模型的多对多关系。我有一个用于附加和分离用户权限的操作控制器。如何检查某个权限是否分离到某个角色 控制器: class RolePermissionController extends Controller { // POST /roles/1/permissions/2/sync // BODY {isAllowed: true} // $role - instance of role model with id == 1 // $permiss

我有
角色
权限
模型的多对多关系。我有一个用于附加和分离用户权限的操作控制器。如何检查某个权限是否分离到某个角色

控制器:

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);
        }

    }
}
$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;})
$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;})

我只需使用第一个模型的关联方法访问联接表的查询生成器,然后请求关联模型的列的计数。就你而言,我认为:


$role->perms()->where('permission_id',$permission->id)->count()>0

我只需使用第一个模型的关联方法访问联接表的查询生成器,然后请求关联模型的列的计数。就你而言,我认为:


$role->perms()->where('permission\u id',$permission->id)->count()>0

谢谢$角色->烫发->包含($permission);为你工作$角色->烫发->包含($permission);为我工作