public function run() { global $request; $em = \Shared\DoctrineHelper::getEntityManager(); $idAdmins = $request->request->get("idAdmins"); $idCompte = $request->request->get("idCompte"); $adminName = $request->request->get("adminName"); $arrDroitsParam = json_decode($request->request->get("arrDroits")); $arrDroitsNew = []; if ($idAdmins > 0) { $objAdmins = \Site\SiteHelper::getAdminsRepository()->find($idAdmins); $arrDroitsOld = $objAdmins->getDroits(); } else { $objAdmins = new \Site\Entity\Admins(); $objAdmins->setEstActif(1); $arrDroitsOld = []; } $objAdmins->setIdCompte($idCompte); $objAdmins->setName($adminName); foreach ($arrDroitsParam as $idDroit => $droitParam) { if ($droitParam) { $arrDroitsNew[] = $idDroit; } else { if (($key = array_search($idDroit, $arrDroitsOld)) !== false) { unset($arrDroitsOld[$key]); } } } $objAdmins->setDroits($arrDroitsNew + $arrDroitsOld); $em->persist($objAdmins); $em->flush(); }