记ThinkPHP中数据表自动填充日期时间

刚开始接触TP学到CURD部分,在模型中使用自动填充功能碰到点问题


以下是符合自己要求的代码:

class FormModel extends Model{
    //定义自动验证
    protected $_validate = array(
        array('title','require','标题不能为空'),
        );
    //定义自动完成
    protected $_auto = array(
        array('create_time','date',1,'function',array('Y-m-d H:i:s')),

    );
}

一开始不知道还有第5个格式参数,手册里都没有,心塞(>﹏<。)~

还有不用第5个参数的

class FormModel extends Model{
    //定义自动验证
    protected $_validate = array(
        array('title','require','标题不能为空'),
        );
    //定义自动完成
    protected $_auto = array(

        array('create_time','getTime',1,'callback'),
    );
    protected function getTime(){
        $time = time();
        $datetime = date("Y-m-d H:i:s",$time);
        return $datetime;
    }
}

要注意的一点是—>如果是用自己的函数那就要用callback,第二个参数默认当前模块能调用的方法;用function的话第二个参数为函数名,而这个函数可以是PHP自带的,也可以是你自己写的。

  • 要使用(Y-m-d H:i:s)的形式,数据库中的create_time字段数据类型要是datetime
protected $_auto = array(
      array('time_at','time','1','function'),
    );
  • 如果使用以上的填充方法,数据库中的create_time字段数据类型要是int

以下附录一下自动填充的规则:
要使用自动填充功能,只需要在对应的 Model类 里面定义 $_auto 属性(由多个验证因子组成的数组)。$_auto 属性是由多个填充因子组成的数组

protected $_auto = array(
    array(填充字段,填充内容[,填充条件][,附加规则])
};
填充因子说明
填充字段必须。需要填充的表单字段,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如验证码等。
填充内容必须。要对字段自动填充的内容。
填充条件可选。包括:
1、Model:: MODEL_INSERT 或者 1 :新增数据时候填充(默认)
2、Model:: MODEL_UPDATE 或者 2 :更新数据时候填充
3、Model:: MODEL_BOTH 或者 3 :全部情况下填充
附加规则可选。包括:
1、string:字符串,表示填充内容为字符串(默认)
2、function:使用函数,表示填充的内容是一个函数返回值
3、callback:使用方法,表示填充的内容是一个当前 Model 的方法返回值
4、field:字段,表示填充的内容是一个其他字段的值
5、ignore :为空则忽略(3.1.2新增)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值