修改器,在数据添加的时候可以修改数据
在模型中添加.
$data来自获取的表单数组,set后为表字段名
public function setPasswordAttr($val,$data){
return md5($val.$data['email']);
//return md5($val);
}
set+字段名+Attribute


auto (新增及更新的时候自动完成的属性数组)
insert(仅新增的时候自动完成的属性数组)
update(仅更新的时候自动完成的属性数组)
1223321321
model User.php
public function getSexAttr($val){
switch($val){
case '1':
return a
break;
}
}
auto (新增及更新的时候自动完成的属性数组)
insert(仅新增的时候自动完成的属性数组)
update(仅更新的时候自动完成的属性数组)
<?php namespace app\index\model; use think\Model; class User extends Model{ protected $auto = [ 'time' ]; protected $insert = [ 'time_insert' ]; protected $update = [ 'time_update' ]; public function setPasswordAttr($val,$data){ //第二个参数是数组数据 return $val.$data['email']; return md5($val); } public function setTimeAttr(){ return time(); } public function setTimeInsertAttr(){ return time(); } public function setTimeUpdateAttr(){ return time(); } }
<?php
namespace app\index\model;
use think\Model;
class User extends Model{
protected $auto = [
'time'
];
protected $insert = [
'time_insert'
];
protected $update = [
'time_update'
];
public function setPasswordAttr($val,$data){
//第二个参数是数组数据
return $val.$data['email'];
return md5($val);
}
public function setTimeAttr(){
return time();
}
public function setTimeInsertAttr(){
return time();
}
public function setTimeUpdateAttr(){
return time();
}
}

修改器进行复杂加密
模型修改器 set字段名Attr
图2
auto (新增及更新的时候自动完成的属性数组)
insert(仅新增的时候自动完成的属性数组)
update(仅更新的时候自动完成的属性数组)
auto (新增及更新的时候自动完成的属性数组)
insert(仅新增的时候自动完成的属性数组)
update(仅更新的时候自动完成的属性数组)
命名规范是 -> set + 属性名的驼峰命名 + Attr
格式: protected $insert = [
'insert'//字段名
];
public function setInsertAttr(){
return time();
}
#获取器 get+字段名+Attr 命名规范是 -> get + 属性名的驼峰命名 + Attr
#修改器 set+字段名+Attr 命名规范是 -> set + 属性名的驼峰命名 + Attr
auto (新增及更新的时候自动完成的属性数组)
insert(仅新增的时候自动完成的属性数组)
update(仅更新的时候自动完成的属性数组)
读取器的命名规范是 -> get + 属性名的驼峰命名 + Attr
修改器的命名规范是 -> set + 属性名的驼峰命名 + Attr
模型修改器与自动完成
<?php
namespace app\index\model;
use think\Model;
class User extends Model{
#get+字段名+Attr
public function getGenderAttr($val){
switch ($val){
case "1";
return '男';
break;
case "2";
return '女';
break;
default;
return '未知';
break;
}
}
#模型修改
// public function setPasswordAttr($val,$data){
// return $val.$data['email'];
// }
#无论对数据库执行插入&更新操作,总是在数据中加上time字段相应的值
protected $auto = [
'time'//字段名
];
public function setTimeAttr(){
return time();//字段对应的值
}
#insert/update对数据库执行插入/更新操作时,在数据字段中加入对应的值
protected $insert = [
'insert'//字段名
];
public function setInsertAttr(){
return time();
}
}