記得看下面php
一、獲取器的做用是在獲取數據的字段值後自動進行處理thinkphp
二、修改器的做用是能夠在數據賦值的時候自動進行轉換處理數據庫
三、獲取器應用:咱們在數據庫存性別的時候不能存男女,而能夠存0(未知)1(男)2(女),這樣快,獲取器就是我在控制器中經過$user->toArray()從模型獲取數據的時候,自動調用模型中的getSexAttr()方法,從而返回的結果裏面直接是男女,而不是012函數
四、模型中的方法是自動調用的,因此函數的命名規則是一一對應的,控制器數據表中自動sex,模型中函數getSexAttr(),若是字段 user_status 修改器名字getUserStatusAttr加密
五、修改器應用:修改密碼的時候,自動md5加密spa
六、控制器和修改器都有特定的觸發方法,修改器(save能夠,update不能夠),控制器(看下面案例)md5
一、數據模型get
// sex 的獲取器it
public function getSexAttr($val){io
switch ($val) {
case '0':
return "未知";
break;
case "1":
return "男";
break;
case "2":
return "女";
break;
}
}
二、控制器
// 獲取ID爲15 的數據
$user=User::get(17);
// 通過獲取器的操做
dump($user->toArray());
dump($user->sex);
// 不通過獲取器處理
dump($user->getData());
三、注意
一、若是字段 user_status 修改器名字getUserStatusAttr
二、若是字段 status 修改器名字getStatusAttr
一、數據模型
// 用戶密碼的修改器
public function setPassAttr($val){
return md5($val);
}
二、控制器
// 修改 ID 爲15 的密碼
$user=new User();
// 密碼會實現自動加密
$res=$user->save(['pass'=>'456'],['id'=>15]);
dump($res);
三、注意
一、修改器的觸發條件是 save方法