【问题标题】:Sonata admin overwrite service configurationSonata 管理员覆盖服务配置
【发布时间】:2013-06-07 13:37:58
【问题描述】:

我安装了来自同一供应商的通知包和奏鸣曲管理包。但是我不想在管理面板上显示通知包。

我知道,为了做到这一点,我可以使用:

show_in_dashboard="false"

我已将它放在供应商文件夹中,它可以工作,但我想将它放在 config.yml 中,这样它就不会导致服务器或版本更新之间出现问题。

你知道怎么做吗?

谁可能关心禁用演示的正常语法是:

<tag
                    name="sonata.admin"
                    manager_type="orm"
                    group="sonata_notification"
                    label="notifications"
                    label_translator_strategy="sonata.admin.label.strategy.underscore"
                    show_in_dashboard="false"
               />

或在 yml 中:

tags:
            - { name: sonata.admin, manager_type: orm, group: "Some Group", label: "", show_in_dashboard: false }

谢谢

【问题讨论】:

    标签: php symfony sonata-admin


    【解决方案1】:

    我解决这个问题的方法是在 sonata_admin 配置中明确指定要在仪表板中显示哪些管理服务。

    sonata_admin:
    dashboard:
        blocks:
            # display a dashboard block
            - { position: left, type: sonata.admin.block.admin_list }
    
        groups:
            some_group:
              label:  "Some group"
              items:
                - some_admin_service
                - some_other_admin_Service
            some_other_group:
              label:  "Some other group"
              items:
                ...
    

    更多示例可以在文档http://sonata-project.org/bundles/admin/2-1/doc/reference/dashboard.html中找到

    【讨论】:

      【解决方案2】:

      您可以使用 services.yml 覆盖服务定义(在您的情况下)。

      1) 创建文件(如果不存在):app/config/services.yml

      2) 在“imports”部分的 config.yml 中添加新源:

      imports:
      - { resource: parameters.yml }
      - { resource: services.yml }
      

      3) 用

      添加服务定义
      show_in_dashboard: false
      

      它将覆盖供应商的默认值

      【讨论】:

        猜你喜欢
        • 2021-07-14
        • 2014-12-16
        • 2015-02-27
        • 2017-01-18
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        • 1970-01-01
        • 2017-10-16
        相关资源
        最近更新 更多