【问题标题】:Need just edit page not listing page in sonata admin只需要在奏鸣曲管理员中编辑页面而不是列表页面
【发布时间】:2017-11-07 13:07:34
【问题描述】:

在我的一个模块中,我不能只显示全局数据,管理员可以编辑它。

我想为此创建模块,但它会列出页面,但我需要直接编辑页面,管理员可以在奏鸣曲管理员中编辑全局值。

有什么想法吗?

提前致谢

【问题讨论】:

  • 在 Sonata Admin 中,所有内容都与一个实体相关联,您可以选择应该允许哪些操作......例如列表、编辑、显示等等......你的意思是“直接编辑页面” “?我假设您需要一些视图来选择要编辑的记录...
  • 谢谢吉姆,每当我点击左侧菜单时,我都不想列出列表页面,我希望直接创建页面打开而不是列表页面。

标签: symfony sonata-admin


【解决方案1】:

好的,这就是你可以做的......

创建一个 MenuBuilderListener 类,让他们通过注册到侧边栏事件来监听菜单构建事件

在你的 services.yml 中

    app.menu_listener:
        class: AppBundle\Listener\MenuBuilderListener
        tags:
            - { name: kernel.event_listener, event: sonata.admin.event.configure.menu.sidebar, method: addMenuItems }

在您的班级中,搜索您要更改为“仅编辑”的菜单项...

class MenuBuilderListener
{
    public function addMenuItems(ConfigureMenuEvent $event)
    {
        $event->getMenu()->removeChild('the_name_of_your_menu_item');
        $event->getMenu()->addChild('the_name_of_your_menu_item', ['route' => 'your_route_to_create_view']);
    }

}

Mabe 在较新的 KnpMenu 版本中应该有一个直接用于 MenuItem 对象的 setRoute 方法,在我的版本中它没有。

这样做,您的项目应替换为指向您的创建路线的项目。要获得可用的路由,请使用控制台中的调试器与 debug:router

如果您不想列出/编辑等等,不要忘记阻止其他路线......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 2019-01-14
    • 2017-11-30
    • 2016-06-23
    • 1970-01-01
    • 2019-02-12
    • 2015-11-09
    相关资源
    最近更新 更多