我创建自定义控制器(扩展Sonata \ AdminBundle \ Controller \ CRUDController)和操作。
渲染此操作时{{render(controller('MainBundle:SonataAdmin/Order:searchCertificate'))}}
我得到Symfony错误:
在渲染模板期间抛出了异常("没有为控制器
_sonata_admin
定义MainBundle\Controller\SonataAdmin\OrderController
和当前路由")。
答案 0 :(得分:3)
我在官方documentation找到了答案:
如果要在模板中呈现自定义控制器操作 使用twig中的render函数,你需要添加_sonata_admin作为 属性。例如; {{ 渲染(控制器('AppBundle:XxxxCRUD:comment',{'_ echo_admin': 'sonata.admin.xxxx'}))}}。这必须要做,因为那一刻 渲染应该发生路由,通常设置值 此参数根本不涉及,然后您将收到错误 “没有为控制器定义_sonata_admin AppBundleControllerXxxxCRUDController和当前路线''。“
答案 1 :(得分:0)
我通过在提交请求中设置_sonata_admin解决了这个问题:
使用普通控制器:
$request->request->set('_sonata_admin','admin.template');