无法在 SonataAdminBundle 模板中使用渲染(控制器)
Posted
技术标签:
【中文标题】无法在 SonataAdminBundle 模板中使用渲染(控制器)【英文标题】:Can't use render(controller) in SonataAdminBundle template 【发布时间】:2017-10-09 02:03:43 【问题描述】:我创建自定义控制器(扩展 Sonata\AdminBundle\Controller\CRUDController)和操作。
渲染此动作时render(controller('MainBundle:SonataAdmin/Order:searchCertificate'))
我收到 Symfony 错误:
在渲染模板期间抛出异常(“没有为控制器
MainBundle\Controller\SonataAdmin\OrderController
和当前路由定义_sonata_admin
”)。
【问题讨论】:
【参考方案1】:我在官方documentation找到答案:
如果您想通过以下方式在模板中呈现自定义控制器操作 使用 twig 中的渲染功能,您需要将 _sonata_admin 添加为 属性。例如; 渲染(控制器('AppBundle:XxxxCRUD:评论','_sonata_admin': 'sonata.admin.xxxx' )) 。必须这样做,因为那一刻 渲染应该发生在路由中,这通常设置的值 这个参数,根本不涉及,然后会报错 “没有为控制器定义_sonata_admin AppBundleControllerXxxxCRUDController 和当前路由 ' '。"
【讨论】:
【参考方案2】:我已经通过在 comming 请求中设置 _sonata_admin 解决了这个问题:
普通控制器:
$request->request->set('_sonata_admin','admin.template');
【讨论】:
以上是关于无法在 SonataAdminBundle 模板中使用渲染(控制器)的主要内容,如果未能解决你的问题,请参考以下文章
我无法使用 symfony 5 安装 sonataAdminBundle
Sonata Admin Bundle - 表单类型:sonata_type_collection - 自定义模板?