2016-05-31 40 views
0

我有一个symfony应用程序SonataAdminBundle。在版本2.3一切工作完美。当更新到3.1版本时,仍然显示在仪表板中的所有管理员,但只有组的最后一个显示在站点栏菜单中。我不知道这是一个错误,或者如果我错过了一个新的设置。不幸的是,3.1的文档尚未更新。索纳塔管理员只显示网站栏菜单中的最后一个管理员项目,但都在仪表板中

我使用两个管理列表将它们分成两列。以下是管理员配置中包含组和项目的片段:

dashboard: 

    blocks: 
     - { position: left, type: sonata.admin.block.admin_list, settings: { groups: [product, event] } } 
     - { position: right, type: sonata.admin.block.admin_list, settings: { groups: [system] } } 

    groups: 
     product: 
      label: group.product 
      label_catalogue: MyAdminBundle 
      icon: '<i class="fa fa-shopping-cart"></i>' 
      items: 
       - my.admin.product 
       - my.admin.product_group 
       - my.admin.product_image 
       - my.admin.product_media_file 
       - my.admin.attribute 
     ... 

在仪表板中显示了包含所有5个管理员的孔组。在侧栏菜单中,只有my.admin.attribute管理员显示在产品组中。这适用于所有组。它始终只是显示的最后一个元素。

有谁知道这是什么原因?

该项目目前使用symfony/symfony: 2.8.6sonata-project/admin-bundle: 3.1.0

回答

1

问题是,SonataAdminBundle使用管理服务的label作为标识符。我的所有服务都有一个叫做“title”的标签,因为它只是翻译成管理员的翻译文件。

my.admin.product: 
    class: My\Bundle\AdminBundle\Admin\ProductAdmin 
    tags: 
     - { name: sonata.admin, manager_type: orm, label: title } 
    arguments: 
     - ~ 
     - My\Bundle\AdminBundle\Entity\Product 
     - ~ 

因此,解决办法是简单地将标签更改为唯一一个像product_title和所有的管理员都在边栏再次出现。

您可以在this ticket中查看讨论和发现。这也是他们将标识符改为真正独特的标签。