修改器,在数据添加的时候可以修改数据
在模型中添加.
$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(); } }