/** * return the Response object associated to the create action * * @return \Symfony\Component\HttpFoundation\Response */ public function createAction() { if (false === $this->admin->isGranted('CREATE')) { throw new AccessDeniedException(); } $object = $this->admin->getNewInstance(); $this->admin->setSubject($object); $form = $this->admin->getForm(); $form->setData($object); if ($this->get('request')->getMethod() == 'POST') { $form->bindRequest($this->get('request')); if ($form->isValid()) { $this->admin->create($object); if ($this->isXmlHttpRequest()) { return $this->renderJson(array('result' => 'ok', 'objectId' => $this->admin->getNormalizedIdentifier($object))); } $this->get('session')->setFlash('sonata_flash_success', 'flash_create_success'); // redirect to edit mode return $this->redirectTo($object); } $this->get('session')->setFlash('sonata_flash_error', 'flash_create_error'); } $view = $form->createView(); // set the theme for the current Admin Form $this->get('twig')->getExtension('form')->setTheme($view, $this->admin->getFormTheme()); return $this->render($this->admin->getEditTemplate(), array('action' => 'create', 'form' => $view, 'object' => $object)); }
/** * return the Response object associated to the create action * * @return \Symfony\Component\HttpFoundation\Response */ public function createAction() { $object = $this->admin->getNewInstance(); $form = $this->admin->getForm($object); $this->admin->setSubject($object); if ($this->get('request')->getMethod() == 'POST') { $form->bindRequest($this->get('request')); if ($form->isValid()) { $this->admin->create($object); if ($this->isXmlHttpRequest()) { return $this->renderJson(array('result' => 'ok', 'objectId' => $object->getId())); } // redirect to edit mode return $this->redirectTo($object); } } return $this->render($this->admin->getEditTemplate(), array('action' => 'create', 'form' => $form->createView(), 'admin' => $this->admin, 'object' => $object, 'base_template' => $this->getBaseTemplate())); }