Networking\InitCmsBundle\Controller\LayoutBlockController::updateFormFieldElementAction PHP 메소드

updateFormFieldElementAction() 공개 메소드

public updateFormFieldElementAction ( Request $request ) : Response
$request Symfony\Component\HttpFoundation\Request
리턴 Symfony\Component\HttpFoundation\Response
    public function updateFormFieldElementAction(Request $request)
    {
        $objectId = $request->get('objectId');
        $elementId = $request->get('elementId');
        $uniqId = $request->get('uniqid');
        $code = $request->get('code');
        $post = $request->request->all();
        if (empty($post)) {
            $html = $this->getLayoutBlockFormWidget($objectId, $elementId, $uniqId, $code);
            return new Response($html, 200);
        }
        $post = $request->request->all();
        $post['page'] = $objectId;
        $post['content'] = $this->cleanContentString($post['content']);
        $layoutBlock = $this->admin->getObject($post['id']);
        /** @var $form \Symfony\Component\Form\Form */
        $form = $this->admin->getForm();
        $form->setData($layoutBlock);
        /** @var \Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider  $csrf */
        $csrf = $this->get('form.csrf_provider');
        $token = $csrf->generateCsrfToken($form->getName());
        $post['_token'] = $token;
        unset($post['id']);
        $request->request->set($this->admin->getUniqid(), $post);
        $form->handleRequest($request);
        if ($form->isValid()) {
            $this->admin->update($layoutBlock);
            $html = $this->getLayoutBlockFormWidget($objectId, $elementId, $uniqId, $code);
            $status = 200;
            return new Response($html, $status);
        } else {
            $this->error = true;
            $response = new Response();
            $response->setStatusCode(500);
        }
        $view = $form->createView();
        // set the theme for the current Admin Form
        $this->get('twig')->getExtension('form')->renderer->setTheme($view, $this->admin->getFormTheme());
        return $this->render('NetworkingInitCmsBundle:PageAdmin:layout_block_fields.html.twig', array('form' => $view, 'object' => $layoutBlock, 'code' => $code, 'classType' => $request->get('classType'), 'objectId' => $objectId, 'uniqid' => $uniqId, 'elementId' => $elementId), $response);
    }