【问题标题】:Can't use render(controller) in SonataAdminBundle template无法在 SonataAdminBundle 模板中使用渲染(控制器)
【发布时间】:2017-10-09 02:03:43
【问题描述】:

我创建自定义控制器(扩展 Sonata\AdminBundle\Controller\CRUDController)和操作。

渲染此动作时{{render(controller('MainBundle:SonataAdmin/Order:searchCertificate'))}}

我收到 Symfony 错误:

在渲染模板期间抛出异常(“没有为控制器MainBundle\Controller\SonataAdmin\OrderController和当前路由定义_sonata_admin”)。

【问题讨论】:

    标签: symfony sonata


    【解决方案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');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-16
        • 2012-07-27
        • 2014-05-23
        • 2012-12-31
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多