指示板
编辑该页面指示板
仪表板是主要的着陆页。默认情况下它会列出你的映射模型,由你定义的管理
服务。这是有用的,以帮助您开始使用SonataAdminBundle
马上,但还有更多,你可以利用的仪表板。
仪表板,默认情况下,可用/管理/仪表盘
,这是由奏鸣曲\ AdminBundle \ \ DashboardAction行动
控制器动作。这个行动是默认的视图文件@SonataAdmin /核心/ dashboard.html.twig
,但你可以改变这个管理配置:
- YAML
1 2 3 4 5
#配置/包/ sonata_admin.yamlsonata_admin:模板:指示板:“@SonataAdmin /核心/ dashboard.html.twig”
请注意
这种观点,最喜欢的SonataAdminBundle
观点,扩展全球模板文件,页面也包含了重要的部分。更多的信息是可用的模板一章。
块
仪表板是使用块
从SonataBlockBundle
。你可以了解更多关于这个包和如何构建自己的街区SonataBlock文欧宝官网下载app档页面。
的管理
块列表
的管理
列表是一个块
获取信息管理
服务的池
并打印在良好格式化的列表你默认的仪表板。的管理
列表定义的sonata.admin.block.admin_list
服务的实现块\ AdminListBlockService
类。然后使用@SonataAdmin /块/ block_admin_list.html.twig
模板文件。
随意看一下这些文件。代码将是一个巨大的帮助在实现自己的街区。
配置管理
列表
正如您可能已经注意到现在,管理
组列表管理
映射在一起。有几种方法可以配置这些团体。
默认情况下,管理员命令的方式定义他们。与设置sort_admins
组和管理员将命令通过各自的标签带后备管理id。
使用管理
服务声明
第一,最常用的方法是设置一个组在定义你管理
服务:
- YAML
- XML
1 2 3 4 5 6 7
#配置/ services.yaml服务:app.admin.post:类:App \ Admin \ PostAdmin标签:- - - - - -{名称:sonata.admin,model_class:应用实体\ \,manager_type:orm,组:“内容”,标签:“职位”}
1 2 3 4 5
< !- - - - - -- - - - - -config/services.xml -->< /span><服务id=“app.admin.post”类=“应用程序\ Admin \ PostAdmin”><标签的名字=“sonata.admin”model_class=“应用程序\实体\发布”manager_type=“orm”集团=“内容”标签=“职位”/ >< /服务>
在这些例子中,注意到集团
标记,说明这个管理
服务属于内容
组。
- YAML
- XML
1 2 3 4 5 6 7 8 9 10 11 12
#配置/ services.yaml服务:app.admin.post:类:App \ Admin \ PostAdmin标签:- - - - - -名称:sonata.adminmodel_class:应用实体\ \manager_type:orm组:“app.admin.group.content”translation_domain:“应用程序”标签:“app.admin.model.post”
1 2 3 4 5 6 7 8 9 10 11 12
< !- - - - - -- - - - - -config/services.xml -->< /span><服务id=“app.admin.post”类=“应用程序\ Admin \ PostAdmin”><标签的名字=“sonata.admin”model_class=“应用程序\实体\发布”manager_type=“orm”集团=“app.admin.group.content”translation_domain=“应用程序”标签=“app.admin.model.post”/ >< /服务>
在这个例子中,这个标签是翻译的应用程序
使用给定的translation_domain
。因此,您可以使用上面的例子来支持多种语言在你的项目中。
请注意
您可以使用参数(如。% app_admin.group_post %
)组名称的场景。
使用sonata_admin.yaml
配置文件
您还可以配置管理
在你的列表sonata_admin.yaml
配置文件。这种配置方法覆盖声明中定义的任何设置管理服务。
- YAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#配置/包/ sonata_admin.yamlsonata_admin:指示板:组:app.admin.group.content:标签:app.admin.group.contenttranslation_domain:应用程序项目:- - - - - -app.admin.postapp.admin.group.blog:项目:- - - - - -sonata.admin.page角色:[' ROLE_ONE ',“ROLE_TWO”]app.admin.group.misc:~
请注意
这是一个学术,完整的配置,例子。在现实情况下,您通常不需要使用所有的显示选项。使用默认值的设置离开,关键或使用~
价值的选择。
这个配置指定的app.admin.group.content
组使用app.admin.group.content
标签,使用翻译应用程序
翻译领域(相同的标签和翻译配置,我们宣布之前,在服务定义的例子)。
它还指出app.admin.group.content
组只包含app.admin.post
管理
映射,这意味着任何其他管理
服务声明为属于这个团体将不会显示。
其次,我们声明一个app.admin.group.blog
集团为其默认所有物品(即中指定的管理
服务声明),再加上一个额外的sonata.admin.page
映射,这不是最初这个群体的一部分。
我们也使用角色
选择在这里,这意味着只有用户ROLE_ONE
或ROLE_TWO
特权能够看到这一组,而不是默认设置给定组每个人都可以看到。用户提供ROLE_SUPER_ADMIN
(或配置中指定的角色)总是能够看到组,否则被这种配置选项隐藏。
第三组,app.admin.group.misc
建立了作为一个群体,使用默认值,服务声明中声明。
添加更多的块
就像我们之前所说的,指示板有一个默认管理
块列表,但你可以创建和添加更多的块。
在这个屏幕截图,除了违约管理
左边的列表块,我们添加了一个文本块和RSS提要块在右边。这个场景的配置是:
- YAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
#配置/包/ sonata_admin.yamlsonata_admin:指示板:块:- - - - - -位置:左类型:sonata.admin.block.admin_list- - - - - -位置:正确的类型:sonata.block.service.text设置:内容:> < h2 >欢迎光临奏鸣曲管理< / h2 > < p > <代码> sonata.block.service。文本块包> < /代码,您可以创建和添加新块在这些区域通过配置<代码> sonata_admin > < /代码部分。< / p > < br / >为例,这里一个RSS提要解析器(<代码> sonata.block.service.rss > < /代码):- - - - - -位置:正确的类型:sonata.block.service.rss角色:(POST_READER)设置:标题:奏鸣曲项目的提要url:https://sonata-project.org/blog/archive.rss
请注意
块可以接受/需要通过附加的设置才能正常工作。请参考相关文档/实现以获得更多的信息在每个块的选欧宝官网下载app择和要求。
您还可以配置角色
部分配置用户可以查看。
显示两个管理
与不同的仪表板组块列表
同一块可以有多个实例,并多次被显示在仪表板为每个实例使用不同的配置设置。是一个特殊的例子管理
块列表,可以配置来适应这种情况。
- YAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31
#配置/包/ sonata_admin.yamlsonata_admin:指示板:块:#显示两个仪表板块- - - - - -位置:左类型:sonata.admin.block.admin_list设置:组:[sonata_page1,sonata_page2]- - - - - -位置:正确的类型:sonata.admin.block.admin_list设置:组:(sonata_page3)组:sonata_page1:项目:- - - - - -sonata.page.admin.myitem1sonata_page2:项目:- - - - - -sonata.page.admin.myitem2- - - - - -sonata.page.admin.myitem3sonata_page3:项目:- - - - - -sonata.page.admin.myitem4
在本例中,您将有两个admin_list
块在仪表板上,每一个都包含分别配置组。
数据块
数据块可以用来显示一个简单的计数器的颜色,字体的图标和文本。一个计数器有关过滤器从一个管理员
- YAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#配置/包/ sonata_admin.yamlsonata_admin:指示板:块:- - - - - -类:col-lg-3col-xs-6#微博引导响应代码位置:前#区在仪表板中类型:sonata.admin.block.stats#块id设置:代码:sonata.page.admin.page#管理代码-服务id图标:fasfa-magic#字体的图标文本:app.page.stats#静态文本或翻译信息颜色:bg-yellow#颜色:bg-green, bg-red bg-aqua过滤器:#过滤器值编辑:{值:1}
块配置settings.text
接受静态文本或翻译信息,这可能也有一个多元化的翻译目标:
1 2 3 4 5 6
< !- - - - - -- - - - - -messages.en.xlf -->< /span><trans-unitid=“app.page.stats”><源>app.page.stats< /源><目标>{0}结果| |){1}结果1,正]的结果< /目标>< /trans-unit>
如果您正在使用ob娱乐下载symfony /翻译
> = 4.2,您也可以选择在ICU的消息格式
1 2 3 4 5 6
< !- - - - - -- - - - - -messages+intl-icu.en.xlf -->< /span><trans-unitid=“app.page.stats”><源>app.page.stats< /源><目标>{计数,复数,= 0{结果}}{结果另一个{结果}}< /目标>< /trans-unit>
预览块
预览块可以用来显示一个简短的管理员列表。
- YAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#配置/包/ sonata_admin.yamlsonata_admin:指示板:块:- - - - - -位置:前#区在仪表板中类型:sonata.admin.block.admin_preview#块id设置:代码:sonata.page.admin.page#管理代码-服务id图标:fasfa-magic#字体的图标限制:10文本:最新的编辑页面过滤器:#过滤器值编辑:{值:1}_sort_by:updatedAt_sort_order:DESC
仪表板布局
现在支持位置如下:
- 前
- 左
- 中心
- 正确的
- 底
布局如下:
1 2 3 4 5 6 7
前前前左中心右左中心右左中心右底底底
在前
和底
位置,您还可以指定一个可选的类
选项组块的宽度。
- YAML
1 2 3 4 5 6 7 8 9 10 11
#配置/包/ sonata_admin.yamlsonata_admin:指示板:块:#显示仪表盘块在前区col-md-6 css类- - - - - -位置:前类:col-md-6类型:sonata.admin.block.admin_list
为每一项配置有什么行动在仪表板上
默认情况下。“列表”和“创建”选项可用于仪表盘上的每一项。如果您创建了一个自定义的动作,想要显示在仪表盘上的另外两个,可以通过覆盖configureDashboardActions ()
管理类的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ / src / Admin / PostAdmin.php最后类PostAdmin扩展AbstractAdmin{受保护的函数configureDashboardActions(数组美元行动):数组{美元行动(“导入”]= [“标签”= >“导入”,“url”= >美元这- >generateUrl (“导入”),“图标”= >“导入”,“translation_domain”= >“SonataAdminBundle”,/ /可选“模板”= >“@SonataAdmin / CRUD / dashboard__action.html.twig”,/ /可选];返回美元行动;}}
你也可以隐藏一个动作从仪表板通过取消:
1 2 3 4 5 6 7 8 9 10 11 12 13
/ / src / Admin / PostAdmin.php最后类PostAdmin扩展AbstractAdmin{受保护的函数configureDashboardActions(数组美元行动):数组{美元行动=父::configureDashboardActions ();设置(美元行动(“列表”]);返回美元行动;}}
如果你这样做,你只需要知道行动是隐藏的。它仍然可以通过直接调用它的URL,除非你阻止,使用适当的安全措施(例如基于ACL或角色)。