protected function handleWritePost($request, $id = null)
    {
        $post = $id ? $this->getPost($id) : null;

        $form = $this->formFactory->createNamed(null, 'sonata_news_api_form_post', $post, [
            'csrf_protection' => false,
        ]);

        $form->handleRequest($request);

        if ($form->isValid()) {
            $post = $form->getData();
            $post->setContent($this->formatterPool->transform($post->getContentFormatter(), $post->getRawContent()));
            $this->postManager->save($post);

            $context = new Context();
            $context->setGroups(['sonata_api_read']);

            // simplify when dropping FOSRest < 2.1
            if (method_exists($context, 'enableMaxDepth')) {
                $context->enableMaxDepth();
            } else {
                $context->setMaxDepth(10);
            }

            $view = View::create($post);
            $view->setContext($context);

            return $view;
        }

        return $form;
    }
protected function handleWritePost($request, $id = null)
    {
        $post = $id ? $this->getPost($id) : null;

        $form = $this->formFactory->createNamed(null, 'sonata_news_api_form_post', $post, [
            'csrf_protection' => false,
        ]);

        $form->handleRequest($request);

        if ($form->isValid()) {
            $post = $form->getData();
            $post->setContent($this->formatterPool->transform($post->getContentFormatter(), $post->getRawContent()));
            $this->postManager->save($post);

            $context = new Context();
            $context->setGroups(['sonata_api_read']);

            // simplify when dropping FOSRest < 2.1
            if (method_exists($context, 'enableMaxDepth')) {
                $context->enableMaxDepth();
            } else {
                $context->setMaxDepth(10);
            }

            $view = View::create($post);
            $view->setContext($context);

            return $view;
        }

        return $form;
    }
protected function handleWritePost ( $ request , $ id = null ) { $ post = $ id ? $ this -> getPost ( $ id ) : null ; $ form = $ this -> formFactory -> createNamed ( null , 'sonata_news_api_form_post' , $ post , [ 'csrf_protection' => false , ] ) ; $ form -> handleRequest ( $ request ) ; if ( $ form -> isValid ( ) ) { $ post = $ form -> getData ( ) ; $ post -> setContent ( $ this -> formatterPool -> transform ( $ post -> getContentFormatter ( ) , $ post -> getRawContent ( ) ) ) ; $ this -> postManager -> save ( $ post ) ; $ context = new Context ( ) ; $ context -> setGroups ( [ 'sonata_api_read' ] ) ; // simplify when dropping FOSRest < 2.1 if ( method_exists ( $ context , 'enableMaxDepth' ) ) { $ context -> enableMaxDepth ( ) ; } else { $ context -> setMaxDepth ( 10 ) ; } $ view = View :: create ( $ post ) ; $ view -> setContext ( $ context ) ; return $ view ; } return $ form ; }
Write a post, this method is used by both POST and PUT action methods.

@param Request  $request Symfony request
@param int|null $id      A post identifier

@return FormInterface
Write a post this method is used by both POST and PUT action methods .