电话
13363039260
/Phpcmf/Table用于快速实现数据表的显示、增加、修改、删除等动作,适用于任何数据表的显示和操作。
一、示例说明
例如需要在增加一个资料表,用于录入资料数据,那么可以使用Table类快速实现数据的储存和显示。
1、下载Demo程序示例
A、入门级别的Demo(推荐)
B、进阶级别的Demo
解压之后放到 dayrui/App目录之下,如下图所示
2、创建数据库,我们示例只做数据标题和数据内容的录入
3、界面预览,admin.php?s=test&c=test,即可看到以下界面:
这样就可以利用Table类进行增加、删除、修改操作,根本不需要开发者写多余的sql查询语句,Table类已经帮您处理好了。
二、解析Table类源码
1、构造函数初始化方法
关于初始化数据表的_init方法提供以下参数参考:
table 查询主表 field 可用搜索字段列表 date_field 列表搜索的时间字段,默认inputtime show_field 显示主字段,用于修改日志 list_field 列表显示字段 order_by 默认排序方式 order_list 默认排序方式(同上一样) group_by 分组参数 where_list 默认搜索条件,每次列表都执行 join_list 关联查询,格式:['member', 'member.id=admin.uid', 'left'] select_list 列表查询筛选字段
类的联动条件变量:
$this->edit_where = ''; 修改数据时候的条件判断
$this->delete_where = ''; 删除数据时候的条件判断
$this->list_where = ''; 数据列表时候的条件判断
2、数据列表方法
public function index() {
list($tpl) = $this->_List(); // 完成table自动查询并分页显示动作
\Phpcmf\Service::V()->display($tpl); // 设定显示模板
}
3、数据增加方法
public function add() {
list($tpl) = $this->_Post(0); // 0表示新增post数据
\Phpcmf\Service::V()->display($tpl);// 设定表单模板
}
4、数据修改方法
public function edit() {
// 传入id到post方法表示修改此id提交的数据
list($tpl) = $this->_Post(intval(\Phpcmf\Service::L('Input')->get('id')));
\Phpcmf\Service::V()->display($tpl);
}
5、数据删除方法
public function del() {
$this->_Del(
\Phpcmf\Service::L('Input')->get_post_ids(), // 获取批量删除id号
null, // 删除之前的函数验证
null, // 删除之后的函数处理
\Phpcmf\Service::M()->dbprefix($this->init['table']) // 设定删除表名称
);
}
6、数据存储格式化方法
/ 格式化保存数据
protected function _Format_Data($id, $data, $old) {
if (!$id) {
// 当提交新数据时,把当前时间插入进去
$data[1]['inputtime'] = SYS_TIME;
}
return $data;
}
7、数据存储验证及判断
protected function _Save($id = 0, $data = [], $old = [], $func = null, $func2 = null) {
return parent::_Save($id, $data, $old, function($id, $data, $old){
// 保存之前执行的函数,并返回新的数据
if (!$id) {
// 当提交新数据时,把当前时间插入进去
$data[1]['inputtime'] = SYS_TIME;
}
return dr_return_data(1, null, $data);
}, function ($id, $data, $old) {
// 保存之后执行的动作
});
}
如果不写此方法的话就不会对数据进行格式化操作,按照提交表单原样储存
8、重新格式化编辑页面的字段输出格式
protected function _Data($id = 0) {
if (!$id) {
return [];
}
$row = parent::_Data($id);
//这里可以对数据进行格式化操作,例如,$row['value'] = dr_string2array($row['value']);
return $row;
}