Networking\InitCmsBundle\Controller\LayoutBlockController::getLayoutBlockFormWidget PHP Метод

getLayoutBlockFormWidget() защищенный Метод

protected getLayoutBlockFormWidget ( $objectId, $elementId, null $uniqId = null, string $code = 'networking_init_cms.admin.page' ) : mixed
$objectId
$elementId
$uniqId null
$code string
Результат mixed
    protected function getLayoutBlockFormWidget($objectId, $elementId, $uniqId = null, $code = 'networking_init_cms.admin.page')
    {
        if (!$elementId || !$code) {
            throw new NotFoundHttpException();
        }
        /** @var \Networking\InitCmsBundle\Admin\Model\PageAdmin $pageAdmin */
        $pageAdmin = $this->container->get($code);
        /** @var Request $request */
        $request = $this->get('request_stack')->getCurrentRequest();
        $pageAdmin->setRequest($request);
        if ($uniqId) {
            $pageAdmin->setUniqid($uniqId);
        }
        $page = $pageAdmin->getModelManager()->find($pageAdmin->getClass(), $objectId);
        if ($objectId && !$page) {
            throw new NotFoundHttpException();
        }
        if (!$page) {
            $page = $pageAdmin->getNewInstance();
        }
        $request->attributes->add(array('objectId' => $objectId));
        $request->attributes->add(array('page_locale' => $page->getLocale()));
        $pageAdmin->setSubject($page);
        $formBuilder = $pageAdmin->getFormBuilder();
        /** @var \Symfony\Component\Form\Form $form */
        $form = $formBuilder->getForm();
        $form->setData($page);
        /** @var \Sonata\AdminBundle\Admin\AdminHelper $helper */
        $helper = $this->get('sonata.admin.helper');
        $view = $helper->getChildFormView($form->createView(), $elementId);
        $twig = $this->get('twig');
        $extension = $twig->getExtension('form');
        $extension->initRuntime($twig);
        $extension->renderer->setTheme($view, $this->admin->getFormTheme());
        return $extension->renderer->searchAndRenderBlock($view, 'widget');
    }