Zend Framework 教程 – 显示专辑列表

作者 FarLee 2012年4月12日 22:39:32   ‖浏览(6,536)

Zend Framework 教程 >> 显示专辑列表

前面我们已经设定了各项Zend 框架配置,MySQL数据库信息,models 结构和 view 架构,可以开始尝试显示一些专辑列表了。我们知道MVC模型中业务逻辑是在controller控制器中实现的。所以我们在IndexController 类中完成这个任务,使用zf 在IndexController 类中自动创建的 indexAction() 来列出专辑目录:

zf-tutorial/application/controllers/IndexController.php
...
function indexAction()
{
$albums = new Application_Model_DbTable_Albums();
$this->view->albums = $albums->fetchAll();
}
...

我们实例化一个基于 table data gateway 的model实例。fetchAll() 函数返回一个Zend_Db_Table_Rowset,它可以让我们在action的view脚本文件中迭代输出返回的各行。

现在我们在相应的view 脚本index.phtml文件中填入以下代码:

zf-tutorial/application/views/scripts/index/index.phtml
<?php
$this->title = "My Albums";
$this->headTitle($this->title);
?>
<p><a href="<?php echo $this->url(array('controller'=>'index',
'action'=>'add'));?>">Add new album</a></p>
<table>
<tr>
<th>Title</th>
<th>Artist</th>
<th>&nbsp;</th>
</tr>
<?php foreach($this->albums as $album) : ?>
<tr>
<td><?php echo $this->escape($album->title);?></td>
<td><?php echo $this->escape($album->artist);?></td>
<td>
<a href="<?php echo $this->url(array('controller'=>'index',
'action'=>'edit', 'id'=>$album->id));?>">Edit</a>
<a href="<?php echo $this->url(array('controller'=>'index',
'action'=>'delete', 'id'=>$album->id));?>">Delete</a>
</td>
</tr>
<?php endforeach; ?>
</table>

上面的view脚本首先设定页面标题(在layout 的内容中使用),并使用 headTitle()  这个view helper 设置<head>部分的title属性(显示在浏览器页面的标题栏),然后创建一个添加新专辑的链接。Zend framework 提供了url() 这个 view helper,帮助创建包括正确的base URL 的链接。我们只需简单地传递一个参数数组,zf会完成剩下的工作。

然后我们创建一个html 表格,用以显示每张专辑的title – 标题,artist – 艺术家,并显示编辑和删除记录的链接。上面使用了一个标准的foreach循环: 迭代输出专辑列表,url()再次用于创建编辑和删除专辑的链接。

现在打开http://zftest.local/ ,可以看到页面生成了一个专辑列表:

zend framawork 专辑列表

来说兩句