> ### 修改器參考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、類型轉換同樣可以用在獲取器上