public function createQuestionAction(Request $request) { if (!$request->isXmlHttpRequest()) { throw $this->createNotFoundException(); } /** @var \Doctrine\ORM\EntityManager $em */ $em = $this->get('doctrine.orm.entity_manager'); $user = $this->getUser(); $question = new RiskQuestion(); // Add one empty answer row $answer = new RiskAnswer(); $question->addAnswer($answer); $form = $this->createForm(new RiskQuestionFormType(), $question); if ($request->isMethod('post')) { $form->bind($request); if ($form->isValid()) { $question = $form->getData(); $question->setOwner($user); $em->persist($question); foreach ($question->getAnswers() as $answer) { $answer->setQuestion($question); $em->persist($answer); } $em->flush(); return $this->getJsonResponse(array('status' => 'success', 'new_row' => $this->renderView('WealthbotRiaBundle:Risks:_question_row.html.twig', array('question' => $question)))); } else { return $this->getJsonResponse(array('status' => 'error', 'form' => $this->renderView('WealthbotRiaBundle:Risks:_question_form.html.twig', array('form' => $form->createView())))); } } return $this->getJsonResponse(array('status' => 'success', 'content' => $this->renderView('WealthbotRiaBundle:Risks:_question_form.html.twig', array('form' => $form->createView())))); }