replace($col_name, $arr = [], $callback = [], $exception_group = []):object
$col_name
:必填是指要替換哪個欄位的顯示值。$arr
:顯示值陣列,陣列索引為顯示值,陣列值為欲呈現文字。可自製此陣列的值,或搭配 get_arr()
來取得陣列。$callback
:要將替代後的值進行一步的用函數處理,可以在此設定,陣列索引為函數名稱,陣列值為函數參數陣列。$exception_group
:例外群組陣列,若目前的登入者所屬群組有在此陣列中,那麼就不進行上述的callback
動作。
$Model->replace('enable', [1 => '啟用', 0 => '關閉']);
將enable
欄位的值,若是 1
就顯示成「啟用」,若是 0
就顯示成「關閉」
$cate_arr = $Model->get_arr('my_action_cate', 'cate_id', 'cate_title');
$Model->replace('cate_id', $cate_arr);
將cate_id
欄位(分類編號)的值,轉換成分類名稱。
因此先用get_arr()
來取得my_action_cate資料表中的資料,並以cate_id
(分類編號)作為陣列索引,以cate_title
(分類名稱)作為陣列值。
$ApplyModel->uid_name();
$ApplyModel->replace('uid', [], ['substr_replace' => ['this', '〇', 3, 3]], [1]);
先用uid_name()
將uid
欄位(使用者編號)的值換成使用者名稱
由於值已經由uid_name()
替換,所以會自動轉成真實姓名,故$arr
填入[]
空陣列即可
接著為保護個資,用substr_replace
來搜尋並取代姓名中間的字為〇,故其參數為['this', '〇', 3, 3]]
,第一個this
代表轉換後的值。
但我們希望管理員可以看到完整名稱,故設定第四個例外群組陣列,並將管理員群組填入[1]