博客首页路由-Symfony5全面开发

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

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

立即登录 注册账号

我们打开底部控制台,输入symfony console list make,查看一下所有的make命令,这里有个make:crud命令行,它可以为doctrine的Entity类创建CRUD页面,我们复制这个命令行,输入symfony console make:crud

这里出错了,它提示我们需要安装validator annotations组件,我们来复制这个命令行,执行,安装完之后。我们再次执行make:crud命令,这里提示我们要为哪个Entity类创建CRUD,我们选择Post,选择一个Controller类名,它这里提示我们使用PostController,我们直接回车命令行为我们创建了很多文件。

有PostController,还有PostType,然后是很多的Twig模板文件,最后命令行提示我们在/post路径下检查CRUD页面,确保我们的服务器正在运行,我们打开页面。输入127.0.0.1:8000/post,现在/post路径下显示了我们数据库中的所有文章,并且我们可以显示文章的详情,编辑文章,还可以创建新的文章

使用make:crud命令行,也为Post类创建了CRUD页面。我们已经有管理端页面了,所以我们并不需要这么多页面,我们需要进行一些删除,在templates中,我们打开post目录,我们只保留文章的显示和首页的列表显示,删除其他4个文件。

我们再来检查Controller类,打开PostController文件,命令行为我们创建了五个action方法,我们只需要index()方法和show()方法。index()方法用于文章列表的显示,show()方法用于显示文章的详情。我们删除剩下的3个方法。

我们看到PostController的类前有一个Route注解,注解中是一个/post路径,类前的注解是为所有action方法的注解添加路径前缀,我们删除类前的注解 我们希望post_index的这个路由的页面作为我们博客系统的首页。

然后我们修改show()方法,在路径前添加/post,在index()方法中,通过依赖注入传入了PostRepository类的对象。还记得我们之前课程中讲到的handleRaw()方法吗?我们再来回顾一下,我们双击shift键,输入HttpKernel,如果你没有找到这个类的话,你需要勾选这里。

我们找到handleRaw()方法,在handleRaw()方法第149行,通过$this->argumentResolver的getArguments()方法,为Controller的action方法的参数设置值,最终我们就可以直接在action方法中,直接使用到依赖注入的服务类对象。

在下节课,我们将完善一下index()方法。

课程讨论

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