Table操作类

2024-01-25 14:50 小编

/Phpcmf/Table用于快速实现数据表的显示、增加、修改、删除等动作,适用于任何数据表的显示和操作。


一、示例说明

例如需要在增加一个资料表,用于录入资料数据,那么可以使用Table类快速实现数据的储存和显示。

image.png

1、下载Demo程序示例

Table类操作实例demo.zip

A、入门级别的Demo(推荐)

B、进阶级别的Demo

解压之后放到 dayrui/App目录之下,如下图所示

image.png

2、创建数据库,我们示例只做数据标题和数据内容的录入

image.png

3、界面预览,admin.php?s=test&c=test,即可看到以下界面:

image.png

这样就可以利用Table类进行增加、删除、修改操作,根本不需要开发者写多余的sql查询语句,Table类已经帮您处理好了。


二、解析Table类源码

1、构造函数初始化方法

image.png

关于初始化数据表的_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;

    }




在线咨询 拨打电话

电话

13363039260

内部绝密传真282期

微信二维码