Sonata Admin 覆盖每个 Admin 的布局模板

Sonata Admin overrides layout template per one Admin

我尝试覆盖 Sonata Admin 中的布局模板。我执行了官方文档中的所有步骤,但我的更改不起作用。

我做到了:

  1. 从供应商适当的模板 (standard_layout.html.twig) 复制到 app/Resources/SonataAdminBundle/views/。我将检查我是否在此处覆盖模板我的更改应用于项目中的所有管理员(我希望仅在一个管理员中进行此更改)

  2. 在下一步中,我在我的 Bundle (Name/InfoBundle/Resources/views/JobOffer) 中创建了新文件,并在其中添加了我的自定义模板:findCandidate.html.twig。以下是此文件的内容:

    https://gist.github.com/anonymous/5f4780a1ae8d7329cd91

  3. 添加到捆绑服务:

    name_info.admin.offers:
    
        class: Name\InfoBundle\Admin\JobOfferAdmin
        tags:
            - {name: sonata.admin, manager_type: orm, group: Info, label: Job offers}
        arguments: [~, Name\Info\Entity\JobOffer, NameInfoBundle:JobOffer]
        calls:
            - [ setTemplate, [findCandidate, NameInfoBundle:JobOffer:findCandidate.html.twig]]
    

之后我的更改没有应用。所以可能我在服务中犯了错误,或者我也必须在控制器中调用这个模板?我不确定我在哪里犯了错误。谁能帮帮我?

可能是您在 setTemplate 函数中输入了错误的模板占位符。

尝试这样设置:

calls:
    - [setTemplate, [layout, NameInfoBundle:JobOffer:findCandidate.html.twig]]

它将仅为所选管理员更改 standard_layout