ZendFramework2入门教程第5章 创建视图模板5.5 访问 IndexAction

5.5 访问 IndexAction

经过以上众多的准备工作,现在我们已经可以通过 http://localhost/news 来访问到我们的 NewsController 控制器的indexAction 对应的模板了。在访问地址前我们先将之前文件 /module/Application/src/Application/Controller/NewsController.php 中的indexAction 函数进行一些修改。具体修改如下:

public function indexAction(){
       $view = new ViewModel();
       return $view;
}

讲解:

$view = new ViewModel() 实例化一个视图模型,视图模型前面已经讲解,主要是用来解析模板

return $view 将视图模型返回给前端控制器

现在可以通过 http://localhost/news 来打开我们的网页了,这时我们的页面应该显示如下类似表格:

header

Welcome to ZF2 world

footer

这个表格就是我们在 index.phtml模板中编写的表格。但为什么会在 Welcome to ZF2 world 的上面出现header,下面出footer 呢?其实header和footer 是由我们的layout 布局模板所产生的,前面在讲解布局模板文件的时候我们有说到我们的布局是 “上-中-下“这样的一个结构;header 就是表示我们将来的导航条,footer 就是表示我们将来的版权信息。

通过上面的代码可以看出 $view 视图模型并没有指定使用的模板文件,但ZF2却能够准确的找到 index.phtml模板文件。这是因为ZF2的默认模板搜索机制就是直接查找对应模块下的视图目录,然后再根据模块配置信息(module.config.php)来搜索相关目录。其完整的搜索模式如下:

  • 先到达模块下的视图目录
  • 根据控制器名称在视图目录找与控制器名称相同的视图子目录
  • 根据action名称最终在视图子目录下找到与action名相同的模板文件

如果只是需要访问一个默认的模板文件的话,还有一个更简单的方式,就是在Action 函数里什么也不写直接一个空函数,这样控制器也可以根据框架的默认模板使用规则找到对应的模板。那当然你也可以通过$view视图模型来指定你想使用的视图模板。

以上内容就是关于视图模板使用的主要内容,模板样式可以根据自已或用户的需求进行各种各样的定制,可以把UI模板做得丰富多彩、漂亮。