public function ucEntity(Request $request, PnfTrayectoPeriodo $entity) { if (is_array($request->request->get('uc'))) { $uc = $request->request->get('uc'); $em = $this->getDoctrine()->getManager(); $entityPnfTrayectoPeriodoUc = $em->getRepository('AppBundle:PnfTrayectoPeriodoUc')->findBy(array('pnfTrayPeri' => $entity->getId())); $pnfTrayectoPeriodoIds = array(); foreach ($entityPnfTrayectoPeriodoUc as $key => $enti) { $ucId = $enti->getUc()->getUcId(); if (in_array($ucId, $uc)) { if (($key = array_search($ucId, $uc)) !== false) { unset($uc[$key]); } } else { $pnfTrayectoPeriodoIds[] = $enti; } } //delete entity foreach ($pnfTrayectoPeriodoIds as $key => $value) { $em->remove($value); } if ($pnfTrayectoPeriodoIds) { $em->flush(); } //add entity foreach ($uc as $key => $value) { $entityUnidadCurricular = $em->getRepository('AppBundle:UnidadCurricular')->find($value); if ($entityUnidadCurricular) { $entityPnfTrayectoPeriodoUc = new PnfTrayectoPeriodoUc(); $entityPnfTrayectoPeriodoUc->setUc($entityUnidadCurricular); $entity->addUc($entityPnfTrayectoPeriodoUc); } } } }