前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP中自动填充日期时间

ThinkPHP中自动填充日期时间

作者头像
PM吃瓜
发布2019-08-13 10:25:44
1.3K0
发布2019-08-13 10:25:44
举报

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

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

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个参数的

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(填充字段,填充内容[,填充条件][,附加规则])
};

自动完成是ThinkPHP提供用来完成数据自动处理和过滤的方法,使用create方法创建数据对象的时候会自动完成数据处理。

因此,在ThinkPHP使用create方法来创建数据对象是更加安全的方式,而不是直接通过add或者save方法实现数据写入。

验证实例


//控制器create()方法自动调用验证
$user = D('User');
$data['user'] = '蜡笔小新';
if($user->create($data)){
    $user->add();
}

//string,自动设置count字段为
array('count','1'),

//function,给密码加密,加密类型为sha1,sha1函数为php内置
//该function必须写在Common下的Common文件夹下的function.php
//如果是php内置函数则可直接调用,不需要另写方法,比如sha1或md5加密则可直接调用。
array('user','sha1',3,'function'),

//把email字段的值填充到user字段中去,因为很多时候,用户注册时没有填写昵称或其他,
//所以我们可以把用户填写的email填充到user去当做昵称
array('user','email',3,'field'),


//callback,给用户名加前缀
array('user','updateUser',3,'callback','_'),
//回调函数
protected function updateUser($str,$prefix){
 return $prefix.$str;
}

//igonre,用于修改时密码留空时,忽略修改
array('pass','',2,'ignore');
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档