使用EasyAdminBundle管理端-Symfony5全面开发

您需要登录后才可观看此视频

为了更好的为您提供服务,请您登录后再查看本课程。

立即登录 注册账号

我们打开symfony.sh这个网站,搜索admin,在第二个easyadmin-bundle是官方为我们提供的一个管理端的包,我们安装这个包。回到项目,打开控制台,输入composer req admin,安装完成后,我们查看一下这个包为我们添加的命令行,输入symfony console,在make命令下,为我们添加了3个命令行。分别是make:admin:crudmake:admin:dashboardmake:admin:migration

我们看第一个,第一个就是为我们添加管理端的CRUD操作页面的命令行,第二个命令行是为我们添加一个控制台的首页的命令行,我们使用第二个命令来为我们的管理端添加一个控制台首页。输入symfony console make:admin:dashboard,控制台的Controller,我们使用默认的就可以了,让我们选择Controller类所属于的文件夹,我们选择默认。命令行为我们在src/Controller/Admin目录中创建了DashboardController类。

我们查看这个类,在DashboardController中,它为我们添加了一个路由,路由的名称是admin,路由的路径是/admin。Symfony还提供了另外一个命令行 来帮助我们查看项目中的所有路由。

我们打开控制台,输入symfony console debug:route,回车。这样在项目中所有可用的路由都显示出来了。

第一列是路由的名称,第二列是路由所使用的方法,第三列是路由所使用的协议,第四列是路由的主机名,第五列是路由的路径。刚刚使用命令行添加的admin路径就在这里,还有我们之前创建的第一个页面test路由也在这里。在debug:route令行后面添加路由名称来查看详细的路由配置。

我们查看test路由,test路由的路径就是/test/{name},路由的_controller就是TestController的index()方法。

回到项目,我们查看一下admin这个页面,它的显示情况,我们确保项目的服务器已经启动。我们打开浏览器输入127.0.0.1:8000/adminDashboardController为我们提供了一个模板页面,用来展示控制台的首页。

我们再来使用easyadmin-bundle为我们提供的另外一个命令行make:admin:crud,这个命令行可以帮助我们快速的在管理端创建Model类的CRUD操作页面。我们为文章添加一个CRUD操作页面,命令行输入symfony console,粘贴make:admin:crud

我们要为Post类和Comment类添加CRUDController,我们分别选择Post,CRUD的Controller所在的目录,我们选择默认,默认,现在就在Admin目录中生成了PostCrudController.php。我们再来使用命令行为Comment类添加CRUDController,这次选择0,默认,默认,在src下为我们创建了CommentCrudController。

我们打开浏览器搜索EasyAdminBundle,我们打开第二项,symfony.com这个页面上的文档,文档中第一项,Dashboards控制台这节点击进去。在控制台这一节我们可以设置边栏菜单,我们点击MainMenu,DashboardController的configureMenuItems()方法中,我们可以设置编栏菜单,使用MenuItem的linkToCrud()方法添加边栏菜单。

我们回到项目,我们取消第30行代码前的注释yield MenuItem::linkToCrud(),第一项是菜单的标签,第二项是菜单项所使用的图标的样式类,第三项是所链接到的CRUD的Model类类名。标签我们输入Post,图标暂时使用list,类名我们选择Post。同样的方法我们创建评论菜单。

回到浏览器,刷新控制台。

文章和评论的菜单就显在了菜单栏了,我们点击文章菜单,这里就显示了文章的列表,我们可以点击右上角Add Post来添加一篇文章。所有的CRUD工作都由EasyAdminBundle自动为我们生成。

我们在创建文章的页面发现了一些问题,我们的正文需要使用HTML编辑器,文章状态,希望可以使用下拉菜单的方式来选择发布状态,然后创建时间和更新时间,我们希望在点击Create按钮时,它自动添加,Post Image是用来上传图片的,需要将输入框修改为文件上传框。

在下一节,我们将解决这些问题。

课程讨论

当前内容评论功能已关闭。