public function saveContactDetail(Doctor $doctor) { $contactIdsArray = array(); $contactNumberArray = \json_decode($doctor->getContactNumber(), true); if (\is_array($contactNumberArray)) { if (isset($contactNumberArray['country_code'])) { $contactDetail = new ContactDetail(); $contactDetail->setCountryCode(isset($contactNumberArray['country_code']) ? $contactNumberArray['country_code'] : NULL); $contactDetail->setAreaCode(isset($contactNumberArray['area_code']) ? $contactNumberArray['area_code'] : NULL); $contactDetail->setNumber($contactNumberArray['number']); $contactDetail->setType(ContactDetailTypes::PHONE); $doctor->addContactDetail($contactDetail); } else { foreach ($contactNumberArray as $each) { if ($each['number']) { $contactDetail = new ContactDetail(); $contactDetail->setNumber($each['number']); $contactDetail->setType($this->getContactDetailType($each['type'])); $doctor->addContactDetail($contactDetail); } } } } return $doctor; }
public function testContactDetailAction(Request $request) { $contactDetail = new ContactDetail(); $contactDetail->setType(ContactDetailTypes::PHONE); $doctor = new Doctor(); $doctor->setFirstName('Test Only'); $doctor->setLastName('Doctor'); $doctor->addContactDetail($contactDetail); $form = $this->createFormBuilder($doctor)->add('contactDetails', 'collection', array('type' => 'simple_contact_detail', 'allow_add' => true))->getForm(); if ($request->isMethod('POST')) { $form->bind($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($contactDetail); //$em->flush(); exit; } else { var_dump($form->getErrors()); exit; } } return $this->render('HelperBundle:Test:contactDetailTest.html.twig', array('form' => $form->createView())); }