如何检查模型实例是否附加到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);为我工作