獲取器
版本 | 更新功能 |
---|---|
5.0.10 | 獲取器方法增加第三個參數傳入關聯數據 |
獲取器
獲取器的作用是在獲取數據的字段值后自動進行處理,例如,我們需要對狀態值進行轉換,可以使用:
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']];
}
}
獲取器方法的第二個參數傳入的是當前的所有數據數組。
我們就可以直接使用status_text字段的值了,例如:
$user = User::get(1);
echo $user->status_text; // 例如輸出“正常”
獲取器只有當獲取某個數據屬性的時候自動觸發,如果你要獲取包含獲取器處理的全部數據屬性的話,可以使用下面的方法:
$user = User::get(1);
// 獲取全部獲取器數據
dump($user->toArray());
獲取原始數據
如果你定義了獲取器的情況下,希望獲取數據表中的原始數據,可以使用:
$user = User::get(1);
// 通過獲取器獲取字段
echo $user->status;
// 獲取原始字段數據
echo $user->getData('status');
// 獲取全部原始數據
dump($user->getData());
文檔最后更新時間:2018-04-26 10:05:26
未解決你的問題?請到「問答社區」反饋你遇到的問題