为 Sonata Admin 包配置自定义模板

Posted

技术标签:

【中文标题】为 Sonata Admin 包配置自定义模板【英文标题】:Configure custom template for Sonata Admin bundle 【发布时间】:2016-06-25 13:28:29 【问题描述】:

我为create 操作创建了一个自定义模板,我尝试按照文档中的说明进行配置:

article.admin.article:
    class: ArticleBundle\Admin\ArticleAdmin
    arguments: [~, ArticleBundle\Entity\Article, "ArticleBundle:ArticleAdmin"]
    tags:
        -  name: sonata.admin, manager_type: orm, group: admin, label: Article 
    calls:
        - [ setTemplate, [create, "ArticleBundle:ArticleAdmin:ArticleBundle"]]

我的新 create.html.twig 模板在目录中:src\ArticleBundle\Resources\views\ArticleAdmin\ArticleBundle

当我加载创建页面时,我仍然得到默认模板,而不是我配置的模板。

有什么问题?

【问题讨论】:

你清除缓存了吗?例如在生产环境中:php app/console --env=prod cache:clear 已经尝试清除缓存但同样的问题 我发现没有 create 模板,它是用于创建和编辑操作的编辑模板,所以我怎样才能有不同的模板,一个用于创建和另一个用于编辑? 我有同样的错误 【参考方案1】:

在:

group: admin, label: Article

您缺少双引号。应该是:

group: "admin", label: "Article"

setTemplate 的调用应该是:

calls:
    - [ setTemplate, [create, "ArticleBundle:ArticleAdmin:ArticleBundle/create.html.twig"]]

请参阅 Sonata 管理员templates 参考。

【讨论】:

以上是关于为 Sonata Admin 包配置自定义模板的主要内容,如果未能解决你的问题,请参考以下文章

Sonata Admin Bundle - 自定义模板

如何在 Sonata Admin(Symfony 3.3、PHP 7)中使用自定义 javascript 为模态窗口扩展模板?

Sonata Admin Bundle - 表单类型:sonata_type_collection - 自定义模板?

Symfony Sonata Admin Bundle - 将带有树枝模板的自定义字段导出到 XLS

扩展 Sonata 用户包和自定义操作

Sonata Admin的自定义Flash消息