7 结语
最后更新于:2022-04-01 22:38:09
6 用户和后台
最后更新于:2022-04-01 22:38:07
5.11 书籍搜索
最后更新于:2022-04-01 22:38:05
5.10 书籍列表页面
最后更新于:2022-04-01 22:38:02
5.9 书籍详情页面
最后更新于:2022-04-01 22:38:00
... ...
5.8 开始编写首页
最后更新于:2022-04-01 22:37:58
{{book.title}}
作者:{{book.author}}({{book.region}})
收录时间:{{book.purchdate|date('Y年m月d日')}}
版次:{{book.ver}}
截止{{'today'|date('Y年m月d日')}},任氏有无轩藏书{{summary.summary.0.bc|number_format(0,'.',',')}}本。约{{summary.summary.0.wc|number_format(0,'.',',')}}千字,{{summary.summary.0.pc|number_format(0,'.',',')}}页。
最近({{summary.last.0.purchdate|date('Y年m月d日')}})收藏/整理的书籍是{{summary.last.0.author}}的《{{summary.last.0.title}}》。
~~~ ~~~截至{{"now"|date('Y年m月d日')}},任氏有无轩主人撰写了{{rs.summary}}篇评论。
最近({{rs.last.datein|date('Y年m月d日')}})评论的书籍是《{{rs.book.title}}》,题为“{{rs.last.title}}”。
~~~ 对`index.html.twig`改写如下: ~~~ {{ render (controller('AppBundle:Book:latest')) }} ~~~ ### 编写对应的控制器 我们需要在`BookController`和`ReadingController`中增加对应的控制器方法分别响应上述模板中对控制器的调用: ~~~ // BookController.php public function summaryAction() { $summary = json_decode(file_get_contents('http://api/book/summary'))->out; return $this->render("AppBundle:book:summary.html.twig", ['summary' => $summary]); } // ReadingController.php public function summaryAction() { $summary = json_decode(file_get_contents('http://api/reading/summary')); return $this->render("AppBundle:reading:summary.html.twig", ['rs' => $summary->out]); } ~~~ ### 效果 我们可以看效果了。再次刷新首页[3](https://taylorr.gitbooks.io/building-a-web-site-with-symfony/content/05.08%20index.html#fn_3)得到效果如下: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/946f934759c435f821176460ca3cebf9_1024x736.png) ## 小结 至此,我们已经基本完成首页的编写(还有一些内容我们会在后续章节讲述)。 1. 我们通过Twig模板的继承和包含,对布局模板进行了重构,分成了几个互相独立又互相依赖的子模板。这样做的好处是,每个模板的HTML代码总量都不大,方便调整和调试。 2. 通过内嵌控制器,我们进一步重构了模板,并就此编写了对应的控制器动作和模板。 3. 模板的编写基本基于当今流行的BootStrap框架,大大缩短了时间,提升了效率。 我们还将看两个页面的编写。重点是分页(在“书籍列表页面”中讲述)和图片处理、jQuery的集成(在“书籍详情页面”中讲述)。 不过在此之前,我们先来熟悉一下SF调试环境下的状态栏。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/c4baaf48ae94aa06d3af9aff16062520_1024x53.png) 该状态栏只有在调试环境下出现。从左到右,该状态栏图标的含义为: 1. HTTP返回状态。200表示正常。 2. 当前调用路由名。 3. 峰值内存占用。 4. 当前身份。 5. 渲染耗时。 6. SF当前版本。 将鼠标停在各图标上还有更详细的信息。该状态栏对调试还是很有一定的用处的。 > 1. 在本教程中,为了方便起见,博客文章是“虚拟”的。在实际应用中,用到了对后台WordPress数据库的调用。[ ↩](https://taylorr.gitbooks.io/building-a-web-site-with-symfony/content/05.08%20index.html#reffn_1 "Jump back to footnote [1] in the text.") > 2. 这部分代码非常简单,只有静态代码。所以本教程中不再展开描述。[ ↩](https://taylorr.gitbooks.io/building-a-web-site-with-symfony/content/05.08%20index.html#reffn_2 "Jump back to footnote [2] in the text.") > 3. 该页面效果所使用的博客数据库是真实的,而不是虚拟的。[ ↩](https://taylorr.gitbooks.io/building-a-web-site-with-symfony/content/05.08%20index.html#reffn_3 "Jump back to footnote [3] in the text.")5.7 模板
最后更新于:2022-04-01 22:37:55
5.6 路由
最后更新于:2022-04-01 22:37:53
5.5 样本数据
最后更新于:2022-04-01 22:37:51
5.4 建立数据库实体
最后更新于:2022-04-01 22:37:49
5.3 应用结构
最后更新于:2022-04-01 22:37:46
5.2 建立数据库
最后更新于:2022-04-01 22:37:44
5.1 建立版本管理
最后更新于:2022-04-01 22:37:42
5 创建应用
最后更新于:2022-04-01 22:37:40
4 藏书管理程序的结构
最后更新于:2022-04-01 22:37:37
3.8 Test/测试
最后更新于:2022-04-01 22:37:35
3.7 Template/模板
最后更新于:2022-04-01 22:37:33
3.6 Repository/仓库
最后更新于:2022-04-01 22:37:30
3.5 Entity/实体
最后更新于:2022-04-01 22:37:28
3.4 Controller/控制器
最后更新于:2022-04-01 22:37:26