/** * Remove fieldOptionMerge * * @param FieldOptionMerge $fieldOptionMerge */ public function removeFieldOptionMerge(FieldOptionMerge $fieldOptionMerge) { $this->fieldOptionMerge->removeElement($fieldOptionMerge); }
/** * Edits an existing FieldOption entity. * * @Secure(roles="ROLE_SUPER_USER,ROLE_FIELDOPTION_UPDATE") * @Route("/{id}", requirements={"id"="\d+"}, name="fieldoption_update") * @Method("PUT") * @Template("HrisFormBundle:FieldOption:edit.html.twig") */ public function updateAction(Request $request, $id) { $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository('HrisFormBundle:FieldOption')->find($id); if (!$entity) { throw $this->createNotFoundException('Unable to find FieldOption entity.'); } $deleteForm = $this->createDeleteForm($id); $editForm = $this->createForm(new FieldOptionType($entity->getField()->getId()), $entity); $editForm->submit($request); if ($editForm->isValid()) { $requestcontent = $request->request->get('hris_formbundle_fieldoptiontype'); $fieldOptionIds = $requestcontent['fieldOptionMerge']; // Clear ResourceTableFieldMembers //Get rid of current merged fields options $em->createQueryBuilder('fieldOptionMerge')->delete('HrisFormBundle:FieldOptionMerge', 'fieldOptionMerge')->where('fieldOptionMerge.mergedFieldOption= :mergedFieldOption')->setParameter('mergedFieldOption', $entity)->getQuery()->getResult(); $em->flush(); foreach ($fieldOptionIds as $fieldOptionIdKey => $fieldOptionId) { $fieldOption = $this->getDoctrine()->getRepository('HrisFormBundle:FieldOption')->findOneBy(array('id' => $fieldOptionId)); $fieldOptionMerge = new FieldOptionMerge(); $fieldOptionMerge->setField($entity->getField()); $fieldOptionMerge->setMergedFieldOption($entity); $fieldOptionMerge->setRemovedFieldOptionValue($fieldOption->getValue()); $fieldOptionMerge->setRemovedFieldOptionUid($fieldOption->getUid()); $em->persist($fieldOptionMerge); unset($fieldOption); } $em->persist($entity); $em->flush(); return $this->redirect($this->generateUrl('fieldoption_show', array('id' => $id))); } return array('entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView()); }