/** * Save new Universities. * * @Route("/api/university/save_new_university", name="save_new_university") * @Method({"POST"}) */ public function saveNewUniversityAction(Request $request) { $em = $this->getDoctrine()->getManager(); $serializer = $this->container->get('jms_serializer'); $stateRepo = $em->getRepository("AppBundle:State"); $request_data = json_decode($request->getContent(), true); $message_array = array(); foreach ($request_data as $university) { $university['universityStatus'] = "Activated"; $universityEntity = new University(); foreach ($university['campuses'] as $campus) { $campusName = null; $state = null; $campusEntity = new Campus(); if (array_key_exists('campusName', $campus)) { $campusEntity->setCampusName($campus['campusName']); } if (array_key_exists('state', $campus)) { $campusEntity->setState($stateRepo->findOneById($campus['state'])); } $universityEntity->addCampus($campusEntity); } $universityForm = $this->createForm(new UniversityType(), $universityEntity); $universityForm->submit($university); if ($universityForm->isValid()) { $em->persist($universityEntity); $em->flush(); array_push($message_array, array('success' => 'University Successfully Created')); } else { $em->clear(); $universityFormErrorJson = $serializer->serialize($universityForm, 'json'); array_push($message_array, json_decode($universityFormErrorJson, true)); } } $json = $serializer->serialize($message_array, 'json'); $response = new Response($json, 200); return $response; }