src/Controller/CRUDController.php
protected function configure()
    {
        $request = $this->getRequest();

        $adminCode = $request->get('_sonata_admin');

        if (!$adminCode) {
            throw new \RuntimeException(sprintf(
                'There is no `_sonata_admin` defined for the controller `%s` and the current route `%s`',
                \get_class($this),
                $request->get('_route')
            ));
        }

        $this->admin = $this->container->get('sonata.admin.pool')->getAdminByAdminCode($adminCode);

        if (!$this->admin) {
            throw new \RuntimeException(sprintf(
                'Unable to find the admin class related to the current controller (%s)',
                \get_class($this)
            ));
        }

        $this->templateRegistry = $this->container->get($this->admin->getCode().'.template_registry');
        if (!$this->templateRegistry instanceof TemplateRegistryInterface) {
            throw new \RuntimeException(sprintf(
                'Unable to find the template registry related to the current admin (%s)',
                $this->admin->getCode()
            ));
        }

        $rootAdmin = $this->admin;

        while ($rootAdmin->isChild()) {
            $rootAdmin->setCurrentChild(true);
            $rootAdmin = $rootAdmin->getParent();
        }

        $rootAdmin->setRequest($request);

        if ($request->get('uniqid')) {
            $this->admin->setUniqid($request->get('uniqid'));
        }
    }
protected function configure()
    {
        $request = $this->getRequest();

        $adminCode = $request->get('_sonata_admin');

        if (!$adminCode) {
            throw new \RuntimeException(sprintf(
                'There is no `_sonata_admin` defined for the controller `%s` and the current route `%s`',
                \get_class($this),
                $request->get('_route')
            ));
        }

        $this->admin = $this->container->get('sonata.admin.pool')->getAdminByAdminCode($adminCode);

        if (!$this->admin) {
            throw new \RuntimeException(sprintf(
                'Unable to find the admin class related to the current controller (%s)',
                \get_class($this)
            ));
        }

        $this->templateRegistry = $this->container->get($this->admin->getCode().'.template_registry');
        if (!$this->templateRegistry instanceof TemplateRegistryInterface) {
            throw new \RuntimeException(sprintf(
                'Unable to find the template registry related to the current admin (%s)',
                $this->admin->getCode()
            ));
        }

        $rootAdmin = $this->admin;

        while ($rootAdmin->isChild()) {
            $rootAdmin->setCurrentChild(true);
            $rootAdmin = $rootAdmin->getParent();
        }

        $rootAdmin->setRequest($request);

        if ($request->get('uniqid')) {
            $this->admin->setUniqid($request->get('uniqid'));
        }
    }
protected function configure ( ) { $ request = $ this -> getRequest ( ) ; $ adminCode = $ request -> get ( '_sonata_admin' ) ; if ( ! $ adminCode ) { throw new \ RuntimeException ( sprintf ( 'There is no `_sonata_admin` defined for the controller `%s` and the current route `%s`' , \ get_class ( $ this ) , $ request -> get ( '_route' ) ) ) ; } $ this -> admin = $ this -> container -> get ( 'sonata.admin.pool' ) -> getAdminByAdminCode ( $ adminCode ) ; if ( ! $ this -> admin ) { throw new \ RuntimeException ( sprintf ( 'Unable to find the admin class related to the current controller (%s)' , \ get_class ( $ this ) ) ) ; } $ this -> templateRegistry = $ this -> container -> get ( $ this -> admin -> getCode ( ) . '.template_registry' ) ; if ( ! $ this -> templateRegistry instanceof TemplateRegistryInterface ) { throw new \ RuntimeException ( sprintf ( 'Unable to find the template registry related to the current admin (%s)' , $ this -> admin -> getCode ( ) ) ) ; } $ rootAdmin = $ this -> admin ; while ( $ rootAdmin -> isChild ( ) ) { $ rootAdmin -> setCurrentChild ( true ) ; $ rootAdmin = $ rootAdmin -> getParent ( ) ; } $ rootAdmin -> setRequest ( $ request ) ; if ( $ request -> get ( 'uniqid' ) ) { $ this -> admin -> setUniqid ( $ request -> get ( 'uniqid' ) ) ; } }
Contextualize the admin class depends on the current request.

@throws \RuntimeException
Contextualize the admin class depends on the current request .