原作:DreamPig
今天我就讲解一下数据列表的显示和一些编写的思路。大家都知道前面一篇我已经写好了添加数据的函数,那个函数其实很简单
复制内容到剪贴板
代码:
/**
* 显示添加页面
*/
function actionIndex() {
require(APP_DIR . '/input_add.php');
}上面这个就是说我现在包含进来了input_add.php这个
文件,然后在页面上面显示出来。我在我的input_add.php里面的开头判断了是否是直接调用的!就是说所有的显示页面之前度应该有判度一个在index.php里面
定义的
变量是否已经定义了,如果是就可以执行,如果不是就显示错误信息,这样就作到了同意入口的安全性之一。至少我是这样理解的!在这个页面里面的所有连接最好用url函数来生成。
复制内容到剪贴板
代码:
/**
* 处理添加事件
*/
function actionAddPost() {
$this->_tbInput->create($_POST);
$this->actionShow();
}这个函数的意思就是在input_add.php这个页面里面的post过来的数据我直接就使用使用我内部的
数据库对象的create函数来添加信息,这个就是我们这个
框架的优点之一————————不用自己写
sql语句,直接传个数组给这个函数就可以添加数据了。以下信息拷贝原文:
(当数据表中具有名为 created、created_at 或 created_on 的
字段,并且字段类型为整数或日期,则在向这个数据表插入记录时。FleaPHP 会自动用当前时间填充该字段。同样的,updated、updated_at 或 updated_on 字段会在更新记录时用当前时间填充。)
复制内容到剪贴板
代码:
/**
* 显示列表
*/
function actionIndex() {
$page = isset($_GET['page']) ? (int)$_GET['page'] : 0;
load_class('FLEA_Helper_Pager');
$table =& $this->_tbInput;
$pager =& new FLEA_Helper_Pager($table, $page);
$pk = $table->primaryKey;
$rowset = $pager->findAll();
$this->_setBack();
include(APP_DIR . '/InputList.php');
}上面的代码我一行一行给大家解释下来
第一行:接受分页类的传递过来的页码,看现在已经在那一页了,如果没有就默认为0
第二行:加载分页类,由于默认没有加载此扩展
第三行:获得一个 TableDataGateway 对象,为了下面的分页类服务
第四行:定义一个分页类,里面的参数我一个一个介绍一下,第一个参数是一个 TableDataGateway 对象,那么则FLEA_Helper_Pager 会调用该 TDG 对象的 findCount() 和 findAll() 来确定记录总数并返回记录集。第二个参数就是当前页码
第五行:获得当前对象的主键
第六行:返回当前页对应的记录集
第七行:设置当前页的地址,这个就是一个玄机了,如果记录很多的时候,你刚好在第六页,那个时候你删除或者修改了第六页中的某一个记录,那么可能就会直接跳到第一页去了。我现在这样记录下来就是为了防止这种情况。大家以后设计的时候可以参考一下这种思想。
第八行:这个就是现在展示页面的显示,里面可以通过foreach函数把rowset里面的数据显示出来