完成首页的controller方法-Symfony5全面开发
我们前面课程讲过,Controller的action方法,最终的返回结果一定是个Response
对象,我们看index()
方法,它的返回值是个Response
对象。在函数体中直接返回了$this->render()
方法的结果。
我们按着command键点击render()
方法,在render()
方法中,使用renderView()
方法将参数渲染到模板文件中,最后返回一个$content变量,$content变量就是我们模板文件渲染后的HTML代码,在第262行创建了一个Response
对象,第265行将$content变量设置到Response
对象中,最后返回Response
对象。
所以render()
方法它的返回值也是个Response
对象,现在我们修改一下代码,我们想让博客的首页只显示状态是已发布状态的文章,我们替换一下findAll()
方法。
我们使用findBy()
方法过滤出所有已发布状态的文章,第1个参数它是个数组,数组的键就是Post类的属性,这里我们设置status
,发布状态是published
,结果的排序按照降序排序。
我们按着command键鼠标移动到findBy()方法中,findBy()方法的第2个参数也是个数组,它用来对结果进行排序,我们让结果按照id降序的方式进行排序。确保我们的服务器正在运行,打开浏览器输入127.0.0.1:8000
,出错了。
在上一节课,我们删除了很多代码,我们点开index.html.twig
文件,我们删除了编辑文章的action方法和新增文章的action方法。在下节课,我们将讲解Twig模板的使用方法来解决现在的错误问题。