9-9
根據群組來拿掉或取代資料
- 若是讓非管理員也看到報名者的電話或姓名,那可能會出大事...因此,我們可以除了管理員之外,其他群組不能看到電話,姓名也只能看到局部姓名
case "show":
...略...
$ApplyModel->disable('phone', ['index'], [1]);
$ApplyModel->replace('uid', [], ['substr_replace' => ['this', '〇', 3, 3]], [1]);
$ApplyModel->index();
break;
加上後,管理員看起來像這樣:
非管理員則像這樣:
- 關於判斷群組拿掉某個欄位:
$ApplyModel->disable('phone', ['index'], [1]);
第一個參數就是針對phone
欄位來使之不顯示
第二個參數是要指定在哪些功能中不顯示,目前指定在index
列表中不顯示
第三個參數則是例外的群組陣列,也就是哪些群組不進行隱藏,填入[1]代表管理員群組不取代,可以看到電話。
-
關於disable()
可參考:https://campus-xoops.tn.edu.tw/modules/tad_book3/page.php?tbsn=48&tbdsn=1629
- 關於判斷群組用函數(而非指定替換值的方式)替換欄位內容:
$ApplyModel->replace('uid', [], ['substr_replace' => ['this', '〇', 3, 3]], [1]);
第一個參數就是針對uid
欄位,因為之前有套用uid_name()
,所以,此時該欄位值會變成姓名。
第二個參數未填,原本是要填值的對應,但因為這不是已知的值(天曉得報名的人會叫做什麼名字),所以,留空。
第三個參數是callback陣列,用來呼叫各種函數用,這裡用substr_replace
函數來把姓名的第二個字取代成〇,其中this
代表uid_name
的值(也就是姓名)
第四個參數則是例外的群組陣列,也就是哪些群組不進行取代,填入[1]代表管理員群組不取代,可以看到全名。