public function show(User $user, \Illuminate\Http\Request $request) { if ($request->isMethod('post')) { $ids = $request->input('role_id'); $old_ids = []; $roles = $user->roles; foreach ($roles as $oldRole) { if (!in_array($oldRole->id, $ids)) { $user->detachRole($oldRole->id); } $old_ids[] = $oldRole->id; } $ids = array_diff($ids, $old_ids); $user->attachRoles($ids); } else { $model = new \App\Role(); $roles = $model->get(); return view('admin.user.show', compact('user', 'roles')); } }