信息列表展示

用户访问时默认展示列表页,所以我们建立的列表页面的控制器名称为index.php。

创建控制器文件:controller/notes/index.php 对应列表展示的控制器。

index.php 内容如下:

<?php
$note = new Model('notes');
$notes = $note->list_all();
?>

创建视图文件:view/default/notes/index.html 对应列表展示的视图。

index.html 内容如下:

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>CRUD测试-列表</title>
<style type="text/css">
</style>
</head>
<body>
<table>
<tr>
<th>{$note->lable('title')}</th>
<th>{$note->lable('author')}</th>
<th>{$note->lable('theme')}</th>
<th>{$note->lable('postdate')}</th>
</tr>
{loop $notes as $n}
<tr>
<td>{$n->title}</td>
<td>{$n->author}</td>
<td>{$n->field_text('theme')}</td>
<td>{date('Y-m-d',$n->postdate)}</td>
</tr>
{/loop}
<tr></tr>
</table>
</body>
</html>

对于theme字段,因为存储为枚举类型,而枚举的值不是最终要显示的值,所以调用field_text方法展示要调用的文本。

浏览器输入:http://www.yyuc.net/notes/,一个信息列表页面就展现在你面前了。

此时,我们再修改下新增页面,使新增完成后自动跳转到列表页

creat.php 内容改为:

<?php
$note = new Model('notes');
if(Request::post()){
    //如果有post信息 则认为是新增后的Form提交
    //单纯的post信息判断是不安全的 因为没有具体的字段要求和判断所以可以这样写
    $note->load_from_post();
    $note->save();
    Redirect::to('index');
}
?>

通过调用框架的Redirect::to方法而不是直接的视图引用,可以有效的屏蔽了F5刷新引起的重复提交问题。