thinkPHP5.1之模型获取器,修改器,自动更新,填充等等
文件位置

<?php
namespace app\index\model;
use think\Model;
use think\model\concern\SoftDelete; //导入软删除功能
class Staff extends Model
{
use SoftDelete;
protected $table = 'aaa';
protected $pk = 'id';
//设置删除时间字段,配合软删除功能
protected $deleteTime = 'delete_time';
//设置软删除字段的默认值
protected $defaultSoftDelete = 0;
// 模型获取器
// 获取器 1.sex
protected function getSexAttr($value)
{
$sex = [0=>'男',1=>'女'];
return $sex[$value];
}
// 获取器 2.money
protected function getMoneyAttr($value,$data)
{
return $data['name'].'的工资是:'.$value;
}
// 获取器 3.abc(自定义)
protected function getAbcAttr($value,$data)
{
return $data['name'].'的年龄是:'.$data['age'].' ,工资是:'.$data['money'];
}
// 模型修改器
// 模型获取器 1.时间转换为时间戳
protected function setEntryTimeAttr($value)
{
return strtotime($value);
}
// 模型获取器 2.支持第二个参数
protected function setMoneyAttr($value,$data)
{
return $value + $data['age'];
}
//类型转换
protected $type=[
'id' => 'interger',
'sex' => 'interger',
'money' => 'interger',
'age' => 'interger',
];
//自动完成 针对写操作.新增\更新
//相当于设置的默认值
protected $insert = [
'sex' => 0,
'age' => 18,
'money' => 3600
];
//更新
protected $update = ['sex' => 0];
//针对新增与更新 更新一些相同的东西
protected $auto = ['sex' => 0];
//开始当前时间戳 功能
// (也可以在config/database.PHP中开启)
protected $autoWriteTimestamp = true;
//设置更新的字段
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
}点击 "运行实例" 按钮查看在线实例
<?php
//cmd 创建模型 php think make:model index/Staff
namespace app\index\controller;
/**
* 使用模型获取器
*/
use think\Controller;
use app\index\model\Staff as Zhang;
class Dome4 extends Controller
{
//http://tp.io/Index.php/index/Dome4/get
//模型获取器
function get()
{
$res = Zhang::get(40);
dump($res->sex);
dump($res->money);
dump($res->abc);
}
//模型修改取器
function set()
{
$res = Zhang::get(41);
$res->age=20;
$res->entry_time='2015-06-23';
$res->money='1000';
$res->save();
}
//自动更新时间戳功能
function auto()
{
Zhang::update(['name'=>'老鼠爱小猫'],['id'=>63]);
}
}点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号