#### 1. 獲取器簡介 --- 獲取器的作用是對模型實例的(原始)數據做出自動處理 一個獲取器對應模型的一個特殊方法(該方法必須為public類型),而且必須遵循框架的獲取器方法名命名規(guī)范 #### 2. 獲取器方法名命名規(guī)范 --- 獲取器方法命名規(guī)范: **get`FieldName`Attr**, `FieldName` 為數據表字段的大駝峰轉換 **一、小寫字母下劃線分隔命名的字段** 對于一般的數據表字段,字段名由多個單詞組成時,規(guī)范是使用小寫字母下劃線分隔命名,例如: `user_name` 字段 這種字段,對應的獲取器方法為 `getUserNameAttr`。補充: name 字段對應 **getNameAttr** 這就不過多介紹了 **二、帶有大寫字母的字段** 在特定情況下,數據表字段可能使用的字段可能是大寫,比如微信小程序中的用戶昵稱字段: **nickName** 此時獲取器方法可以定義為: `getNickNameAttr` #### 3. 追加獲取器 --- **什么是追加獲取器** 追加獲取器: 數據表中不存在的字段對應的獲取器方法 獲取器不僅能定義數據表中存在的字段,還可以定義數據表中不存在的字段,這種獲取器稱之為 **追加獲取器** **獲取器方法參數個數** 獲取器的第一個參數傳入的是當前字段對應的數據 獲取器的第二個參數傳入的是當前的所有原始數據數組 一般來說,普通的獲取器方法用不到第二個參數,所以定義一個參數就可以了 對于追加獲取器方法,方法第一個參數肯定是 null,因為數據表中沒有該字段,所以必須定義兩個參數 **調用追加獲取器** 追加獲取器不會自動調用,因為追加獲取器不是數據表中存在的字段,需要使用模型輸出 `append()` 來調用追加獲取器 #### 4. 獲取器的應用場景 --- **一、狀態(tài)值轉為中文名稱** 場景: 商品表有個status字段,0 代表下架 1 代表上架 在商品表模型中定義 status 字段的獲取器,使用模型查詢數據時,status 字段值則自動轉為中文名稱  但是,實際開發(fā)中我建議使用追加獲取器 因為難免會在其他地方需要用到 status 字段的原始值,即便可以使用 **$model->getData()** 獲取原始數據  **二、時間日期字段的格式化輸出** 用戶表 expire_time 字段為會員到期時間,存儲的是PHP時間戳,此時可以定義獲取器,將時間戳自動轉為日期時間格式  **三、組合字段的輸出** 活動表 level 字段代表獎品等級,name 是獎品名稱,可通過追加獲取器組合輸出: **一等獎: 麻辣香鍋** 