1. 程式人生 > 實用技巧 >tp5獲取器,修改器

tp5獲取器,修改器

獲取器

獲取器的作用是在獲取資料的欄位值後自動進行處理,例如,我們需要對狀態值進行轉換,可以使用:

class User extends Model {
 public function getStatusAttr($value)
 {
 $status = [-1=>'刪除',0=>'禁用',1=>'正常',2=>'待稽核'];
 return $status[$value];
 }}

資料表的欄位會自動轉換為駝峰法,一般status欄位的值採用數值型別,我們可以通過獲取器定義,自動轉換為字串描述。

$user = User::get(1);
echo $user
->status; // 例如輸出“正常”

獲取器還可以定義資料表中不存在的欄位,例如:

class User extends Model {
 public function getStatusTextAttr($value,$data)
 {
 $status = [-1=>'刪除',0=>'禁用',1=>'正常',2=>'待稽核'];
 return $status[$data['status']];
 }}

獲取器方法的第二個引數傳入的是當前的所有資料陣列。

$user = User::get(1);
echo $user->status_text
; // 例如輸出“正常”

修改器

修改器的作用是可以在資料賦值的時候自動進行轉換處理

class User extends Model {
 public function setNameAttr($value)
 {
 return strtolower($value);
}
}

如下程式碼實際儲存到資料庫中的時候會轉為小寫

$user = new User();
$user->name = 'THINKPHP';
$user->save();
echo $user->name; // thinkphp