/** * Creates a new Person entity. * * @Route("/step/1", name="person_create") * */ public function createPersonAction(Request $request) { if (!$request->isXmlHttpRequest()) { return new JsonResponse(['message' => 'You can access this only using Ajax!'], 400); } $entity = new Person(); $entity->setIpAddress(ip2long($request->getClientIp())); $form = $this->createPersonForm($entity); $form->handleRequest($request); if ($request->isMethod('POST')) { if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($entity); $em->flush(); return new JsonResponse(['message' => 'Success!', 'id' => $entity->getId(), 'step' => 2], 200); } } else { return $response = new JsonResponse(['form' => $this->renderView(':form:personInfo.html.twig', ['entity' => $entity, 'form' => $form->createView()])], 200); } $response = new JsonResponse(['message' => 'Error', 'form' => $this->renderView(':form:formBody.html.twig', ['entity' => $entity, 'form' => $form->createView()])], 400); return $response; }