SonataAdmin参考指南二入门

按照安装说明操作,SonataAdminBundle已经安装,但还是无法访问。你要深入配置他,才可以使用它。这里会快速的配置SonataAdminBundle并创建一个管理界面,需要一下几步

第一步,定义SonataAdminBundle路由:

第二步,创建一个Admin类

第三步,创建一个Admin服务

第四步,配置

2入门SonataAdminBundle

2.1第一步,定义SonataAdminBundle路由

为了能够访问SonataAdminBundle界面,你需要将其路由添加到应用程序的路由文件:

注意:这个resource: .是个什么奇怪的语法?因为symfony必须要定义一个资源(指向一个真实的文件)。一旦验证通过Sonata’s AdminPoolLoader,他会处理这条路由,会忽略资源设置。

此时你可以访问管理界面了:http://yoursite.local/admin/dashboard.

2.2第二步,创建一个Admin类

SonataAdminBundle可以帮助你使用图形界面来管理你的数据,你可以创建、更新和查询你的模型。这些操作都需要配置,使用Admin类来完成。

这个Admin类相当于把每一个管理操作都映射到你的模型。在这里,你决定哪些字段显示在列表,使用过滤器或者决定什么字段显示在创建和编辑表单。

为你的模型创建一个Admin类最简单的方法就是继承Sonata\AdminBundle\Admin\Admin类

假设你的AcmeDemoBundle有一个Post实体。

2.3第三步,创建一个Admin服务

现在,你已经有了一个Admin 类,你需要为他创建服务。该服务需要有sonata.admin tag,让SonataAdminBundle知道这个特殊的服务代表一个Admin类

创建一个新的admin.yml文件在Acme/DemoBundle/Resources/config/目录下:

上面的例子假设你用SonataDoctrineORMAdminBundle。如果你使用SonataDoctrineMongoDBAdminBundle、SonataPropelAdminBundle或者SonataDoctrinePhpcrAdminBundle你的manager_type选项就应该调整为doctrine_mongodb,propeldoctrine_phpcr。

一个Admin服务基本配置相当的简单。它创建一个服务实例,基于你之前指定的类,并接受三个参数:

1.Admin服务代码(默认为服务名称)

2.Admin类映射的模型(必须)

3.控制器处理管理操作(默认为SonataAdminBundle:CRUDController())

通常你只需指定第二个参数,第一个参数和第二个参数的默认值适用于大多数情况。

setTranslationDomain的调用,让你选择管理页面的翻译域。更多信息查看symfony的翻译。

现在,你有你的admin服务配置文件,你需要告诉symfony加载它。有两种方法来完成它

2.3.1. 1-导入到主要config.yml

把你新配置的文件引入到主要配置config.yml(请确保你使用正确的文件扩展名)

2.3.1.2-让你的bundle加载它

你也可以在你自己的bundle中加载Admin配置文件。在你自己的bundle扩展文件中load方法中使用load()来加载配置

2.4 第四步,配置

这时,你已经有一个基本的管理页面,来操作你的Model。如果你访问http://yoursite.local/admin/dashboard,你会看到一个面板。你可以创造、展示列表、编辑和删除。

你可能想把自己的项目名称和logo放到顶部栏。

把你的logo文件放到src/Acme/DemoBundle/Resources/public/img/fancy_acme_logo.png里

安装你的资源

现在你需要改变你项目的主配置文件config.yml

 

2.5下一步,安全

你可能已经注意到,你能够输入url来访问你的仪表盘和数据。默认情况下,SonataAdminBundle不附带任何用户管理,增加了极大的灵活性。然而, 这个功能是你应用程序最有可能需要的。Sonata项目包含了SonataUserBundle它集成了非常流行的FOSUserBundle。

恭喜!你已经准备好开始使用SonataAdminBundle了。现在你可以映射其他模型或探索更先进的功能。下面更深层次的讲解每个部分和SonataAdminBundle可以配置什么和能够实现什么

 

 

 

 

发表评论