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...