奏鸣曲和单页

Posted

技术标签:

【中文标题】奏鸣曲和单页【英文标题】:sonata and single page 【发布时间】:2017-04-27 20:56:31 【问题描述】:

我是奏鸣曲的新手,

我有一个带有实体等的 ContentTestAdmin,它只能包含 4 条记录 - 记录 1 - 记录 2 - 记录 3 - 记录 4

我已经禁用了创建和删除功能

public function configureRoutes(RouteCollection $collection)

  $collection->remove('create')->remove('delete');
   

但我需要更改仪表板和左侧菜单上的链接:

实际上我把我的 service.yml 放在了

 admin.comuni:
    class: AppBundle\Admin\ContentTestAdmin
    arguments: [~, AppBundle\Entity\ContentTest, ~]
    tags:
        -  name: sonata.admin, manager_type: orm, label: Content Test, group: Main Section 

我在仪表板上看到标题为“内容”的框,在“内容测试”内看到了列表链接

我会抹去这部分,然后看看

内容测试 - 记录 1 个标题 > 带有指向 1/编辑的链接 - 记录 2 标题 > 带有指向 2/编辑的链接 - 记录 3 标题 > 带有指向 3/编辑的链接 - 记录 4 标题 > 带有指向 4/编辑的链接

左侧菜单也有同样的问题,一个名为 Content test 的文件夹,里面有 4 个链接

有可能吗?谢谢

【问题讨论】:

签出sonata-project.org/bundles/admin/master/doc/cookbook/…。如果它是压倒性的,覆盖模板。 SonataAdminBundle::standard_layout.html.twig 并添加您的自定义链接 【参考方案1】:

您应该在 app/config.yml 中配置管理菜单。

这是一个例子:

sonata_admin:
    dashboard:
        groups:
            content_test:
                label: Content
                icon:  '<i class="fa fa-address-card"></i>'
                items:
                    - route: 'route_to_record1'
                      route_params:  id: 1  #id of record 1
                      label: Record 1
                    - route: 'route_to_record_2'
                      route_params:  id: 2 
                      label: Record 2

要找出记录的路径,请执行命令

app/console (bin/console on sf3) debug:router

这将向您显示您的应用程序中存在的所有路由,只需找到为您的 ContentAdmin 生成的路由奏鸣曲管理员用于显示或编辑或您需要的任何内容(例如:admin_content_test_show)。然后只需使用所需记录的 id 填充 route_params。

(您可以使用它来指向应用程序中的任何路由并预填充该路由的任何参数)

希望对您有所帮助

【讨论】:

非常有帮助!谢谢,在侧栏中它可以工作,但仪表板中没有链接,我该如何解决? 要编辑仪表板的内容,请查看standard_layout.html.twig。

以上是关于奏鸣曲和单页的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security 和单页应用程序

关于单页应用(SPA)的经验之谈

在基于令牌的身份验证和单页应用程序中注销

如何使用 MERN 堆栈构建动态单页 Web 应用程序?

[vuejs 踩坑实战系列] keep-alive 被 beforeRouteEnter 骗了

Vue 创建多页面应用模式