> ### 修改器参考tp6
> ### 包含字段修改和类型转换两部分
> ### 用好修改器可以帮助我们简化很多操作
*****
> ### 修改器定义
```
在模型中定义一个方法 , 如下:
public function setNameAttr($value,$data){
return'dd\_'.$value;
}
```
* 命名规范:set + 数据库字段(大驼峰) + Attr , 如nick_name ==> setNickNameAttr
* $value 字段值
* $data 所有数据的值
> 原理是包装一个以字段为名字的闭包函数 , 该闭包的返回值将代替该字段的值 , 作为存入数据库时我们想要的字段值
> 1、不需要再需要我们手动去修改 , 在执行添加修改时自动执行
> 2、定义一次 重复使用
> 使用方式:
> quickAdd() | quickEdit() 自动使用
> $model->setAttrs($data); 手动使用
*****
> ### 类型转化
> ### 直接在模型中定义 protected $type
```
protected $type = [
'age' => 'integer'
];
```
* 字段 => 数据类型
* 支持的类型有:
* integer
* float
* boolean
* timestamp
* datetime
* object
* array
* json
* serialize
> 使用方式和修改器一样
> 需要注意:
> 1、修改器和类型转换会同时使用 , 但是同一个字段会执行修改器而忽略类型转换
> 2、类型转换同样可以用在获取器上