博客列表 >第二期第三阶段作业,模型获取器、修改器、类型转换,自动完成,自动时间戳

第二期第三阶段作业,模型获取器、修改器、类型转换,自动完成,自动时间戳

豆芽的博客
豆芽的博客原创
2018年05月27日 21:28:55863浏览
<?php

namespace app\index\model;

use think\Model;
use think\model\concern\SoftDelete;

class User extends Model
{

    protected $table = 'user';

    protected $pk = 'user_id';

    use softDelete;

    protected $deleteTime = 'delete_time';
    protected $defaultSoftDelete = NULL;
//获取器一般用法
    protected function getStatusAttr($value)
    {

    	$status = [1=>'启用',0=>'禁用'];
		return $status[$value];
    }
    //获取器第二种用法,传入第二个参数,引用全部的字段值
    protected function getMoneyAttr($value, $data)
    {
    	return $data['name'].'的工资是'.($value+5);
    }
	//可以位表中不存在的字段设置
	protected function getStaffInfoAttr($value, $data)
	{
		//staff_info:是虚拟字段
		//$value:仅仅是一个占位符,没有意义
		return '我是'.$data['name'].",工资才".$data['money'];
	} 
	//修改器
	protected function setEntryTimeAttr($value){
		return strtotime($value);
	}
	//修改器2,支持第二个参数,引用全部字段值
	protected function setMoneyAttr($value, $data)
	{
		return $value+$data['age'];
	}
	protected function setIpAttr()
	{
		return request()->ip();
	}
//类型转换,我们读取数据库的数据的时候默认的是字符串类型
	protected $type = [
		'entry_time' =>'timestamp:Y-m-d',
	];
//模型的自动完成,针对写操作的,新增及更新
//相当于给字段设置默认值

	protected $insert = [
		'age' => 18,
		'money' =>2000,
		
	];
	protected $update = [
		'age' =>11
	];
	protected $auto = [
		'sex' =>1,
		'ip'
	];

	//开启当前模型的自动时间戳
    protected $autoWriteTimestamp = true;

	//设置一下用户自定义的新增和更新时间的字段名
	protected $createTime = "create_time";
	protected $updateTime = "update_time";

}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议