Twig的基本用法并完成首页显示-Symfony5全面开发

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

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

立即登录

我们来看错误页面的提示,它提示我们不能为post_edit路由生成链接,因为我们删除了路由post_edit对应的action方法。最简单的解决方法就是在index.html.twig文件中,我们删除使用post_edit路由的代码就可以了。同样的我们删除使用post_new路由的这行代码,回到浏览器刷新。

现在我们的文章就已经显示了,文章的所有状态都是已发布的状态。回到项目,现在我们来学习一下Twig模板引擎怎么使用。

在第1行使用extends关键字可以实现对模板的继承,我们按着command键鼠标点击base.html.twig文件,在base.html.twig文件中,我们看到最典型的HTML5代码,非常简单。但是在代码中间有一些使用{% block title %},这样的方式定义的代码,这些代码就是Twig的模板代码。

在Twig模板中使用block关键字来定义代码块,我们可以将一些特定功能的HTML代码块定义成一个block区块,然后再使用extends关键字在子模板中对block定义的区块进行覆盖,来让不同的模板显示不同的内容。回到base.html.twig文件,这里定义了4个区块,首先是标题区块,然后是样式代码区块,然后JS代码区块,最后是body区块。这样在index.html.twig中,通过extends关键字继承base.html.twig文件后,我们可以在子模板中定义一些区块来覆盖父模板区块中的内容。

在body区块中,我们看第23行代码,Twig模板引擎也提供了循环遍历的关键字,使用for in来进行循环遍历。在for循环中也可以使用else,如果for循环中没有内容的话,就会执行else的代码,最后使用endfor来结束这个循环。

我们来修改index.html.twig文件,我们让首页的标题为Teebblog,然后h1标签这里我们输入Teebblog List,我们来看for循环的循环体,对于Twig文件中的常规类型的变量,比如说字符串类型或者数值类型,使用双大括号的方式来显示变量的值,为了方便在Twig模板中对页面的变量进行查看,Twig引擎提供了一个{{ dump() }}方法,我们可以在dump()方法中传入要检查的变量。

我们这里传入post,回到浏览器刷新页面,这样for循环中的post变量都挨个显示了。注释这行代码,在前面的课程中,我们使用make:test命令行创建了单元测试代码和集成测试代码。

在下节课中我们将使用make:test命令行创建功能测试代码,来测试我们的Twig模板代码是否可以按照我们的预期进行显示。

课程讨论

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