Maxim Strutinskiy
Maxim Strutinskiy

Reputation: 531

Can't use render(controller) in SonataAdminBundle template

I create custom controller(extending Sonata\AdminBundle\Controller\CRUDController) and action.

When render this action {{render(controller('MainBundle:SonataAdmin/Order:searchCertificate'))}}

I get Symfony error:

An exception has been thrown during the rendering of a template ("There is no _sonata_admin defined for the controller MainBundle\Controller\SonataAdmin\OrderController and the current route").

Upvotes: 1

Views: 931

Answers (2)

Shadi Akil
Shadi Akil

Reputation: 383

i have solved this Problem by setting the _sonata_admin in the comming request:

with normal Controller:

$request->request->set('_sonata_admin','admin.template');

Upvotes: 0

Maxim Strutinskiy
Maxim Strutinskiy

Reputation: 531

I found answer in official documentation:

If you want to render a custom controller action in a template by using the render function in twig you need to add _sonata_admin as an attribute. For example; {{ render(controller('AppBundle:XxxxCRUD:comment', {'_sonata_admin': 'sonata.admin.xxxx' })) }}. This has to be done because the moment the rendering should happen the routing, which usually sets the value of this parameter, is not involved at all, and then you will get an error "There is no _sonata_admin defined for the controller AppBundleControllerXxxxCRUDController and the current route ' '."

Upvotes: 3

Related Questions