thinkphp6 0模型篇之模型的獲取器和修改器

2021-10-04 08:48:32 字數 1899 閱讀 6720

1、獲取器的作用是對模型例項的資料做出自動處理

2、乙個獲取器對應模型的乙個特殊方法,改方法為public

3、方法名的命名規範:getfieldattr();

4、資料庫表示狀態status欄位採用的是數值,而在頁面上,我們需要輸出status欄位希望是中文,就可以使用獲取器

5、在studnets模型端,建立乙個對外的方法

public

function

getstatusattr

($value

)//在控制器端,直接輸出資料庫欄位的值即可得到獲取器轉換的對應值

$user

=students:

:find(20

);return

$user

->

status

;

6、除了getfieldattr中field可以是字段值,也可以是自定義的虛擬字段

public

function

getnothingattr

($value

,$data

)return

$myget

[$data

['status']]

;

7、注:nothing這個欄位不存在,而引數val

ue只是

為了佔位

,並未使

用,第二

個參

數value只是為了佔位,並未使用,第二個引數

value只

是為了佔

位,並未

使用,第

二個引數

data得到的是帥選到的資料,最後得出最終值

8、如果定義了獲取器,還想獲取原始值,可以使用getdata方法

return

$user

->

getdata

('status'

);

9、直接輸出無引數的getdata(),可以得到原始值,而$user輸出是改變後的

dump

($user

->

getdata()

);dump

($user

);

10、使用withattr在控制器端實現動態獲取器,比如設定所有email大寫

$user

=students:

:withattr

('email'

,function

($value))

->

select()

;return

json

($user

);

11、使用withattr在控制器端實現動態獲取器,比如設定status翻譯為中文

$user

= usermodel:

:withattr

('status'

,function

($value))

->

select()

;return

json

($user

)

12、⭐同時定義了模型獲取器和動態獲取器,那麼動態獲取器優先順序更高

1、模型修改器的作用,就是對模型設定物件的值進行處理

2、模型修改器的命名規則為setfieldattr;

4、設定乙個新增,規定郵箱的英文都必須大寫:

public

function

setemailattr

($value

)

5、⭐模型修改器只對模型方法有效,呼叫資料庫的方法是無效的

ThinkPHP6 0 學習 安裝

1 linux環境 curl ss php 將檔案移動到bin下 mv composer.phar usr local bin composer 2 使用國內映象 阿里雲 開啟命令列視窗 windows使用者 或控制台 linux mac 使用者 並執行如下命令 composer config g ...

thinkphp6 0學習筆記之啟程2

控制器,即 controller,控制器檔案存放在 controller 目錄下 如果想改變系統預設的控制器檔案目錄,可以在 config 下 route.php 配置 controller layer controllerxyz er後面自由新增類名和檔名大小寫保持一致,並採用駝峰式 首字母大寫 ...

thinkphp6 0之了解容器和依賴注入

1 在model裡建立乙個類繼承model namespace use think model class oneextends model 2 建立乙個控制器inject,通過依賴注入將模型one物件引入其內 namespace use class inject public function i...