我创建自定义控制器(扩展Sonata\AdminBundle\Controller\CRUDController(和操作。
将此操作呈现{{render(controller('MainBundle:SonataAdmin/Order:searchCertificate'))}}
我收到Symfony错误:
呈现模板期间引发异常("没有为控制器
MainBundleControllerSonataAdminOrderController
和当前路由定义_sonata_admin
"(。
我在官方文档中找到了答案:
如果要通过以下方式在模板中呈现自定义控制器操作 使用 Twig 中的渲染函数,您需要将_sonata_admin添加为 属性。例如;{{ render(controller('AppBundle:XxxxCRUD:comment', {'_sonata_admin': 'sonata.admin.xxxx' }(( }}.必须这样做,因为当 渲染应该发生路由,这通常设置 这个参数,根本不涉及,然后你会得到一个错误 "没有为控制器定义_sonata_admin AppBundleControllerXxxxCRUDController 和当前路由 ''.">
我已经通过在即将到来的请求中设置_sonata_admin来解决此问题:
使用普通控制器:
$request->request->set('_sonata_admin','admin.template');