1、读取器
前面读取用户生日的时候,使用了date方法进行日期的格式处理输出,但是每次读取数据后都需要这样处理就显得非常麻烦。
使用读取器功能就可以简化类似的数据处理操作,例如,我们给Users模型添加读取器的定义方法
<?php
namespace app\index\model;
use think\Model;
class Users extends Model{
//RegTime读取器
protected function getRegTimeAttr($regtime){
//把时间戳转换成日期格式
return date('Y-m-d',$regtime);
}
//Email读取器
protected function getEmailAttr($a,$data){ //$a是对应的参数值,$data是整个一条记录的对象,就可以访问对象里的所有字段
return "your Email:".$a.',and your password:'.$data['password'];
}
}
?>
用户读取数据
// 读取用户数据
public function read($id='')
{
$user = UserModel::get($id);
echo $user->nickname . '<br/>';
echo $user->email . '<br/>';
echo $user->birthday . '<br/>';
}
结果为:日期和email都被读取器修改了。数据库里面存储的日期为int是时间戳
a:1:{s:2:"aa";i:11;}
your Email:234234@qq.com,and your password:00
2018-09-10
2、写入器
//写入器 把日期格式转换成 时间戳返回
protected function setRegTimeAttr($value){
return strtotime($value);
}
//写入数据
$user = Users::get(1);
$user->reg_time = '2018-11-10'; //把日期转换成时间戳再插入数据库
//echo $user->reg_time.'<br>'; //修改器修改之后的日期
$user->save();
//UPDATE `tp_users` SET `reg_time`=1541779200 WHERE `user_id` = 1