thinkPHP5.1之模型获取器,修改器,自动更新,填充等等
文件位置
satff实例
<?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'; }
运行实例 »
点击 "运行实例" 按钮查看在线实例
Dome4实例
<?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]); } }
运行实例 »
点击 "运行实例" 按钮查看在线实例