14、ThinkPhP5:读取器与修改器

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 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值