獲取器
| 版本 | 更新功能 |
|---|---|
| 5.0.10 | 獲取器方法增加第三個參數傳入關聯數據 |
獲取器
獲(huo)取器的作用是在獲(huo)取數據的字(zi)段值(zhi)后自動進行(xing)處理(li),例如,我們需要對(dui)狀態值(zhi)進行(xing)轉換(huan),可以使用:
class User extends Model
{
public function getStatusAttr($value)
{
$status = [-1=>'刪除(chu)',0=>'禁用',1=>'正常',2=>'待審核'];
return $status[$value];
}
}
數據表的字段會自動轉換為駝峰法,一般status字段的值采(cai)用數值類型,我們(men)可以通過獲取器定義,自(zi)動轉換(huan)為(wei)字符串描述。
$user = User::get(1);
echo $user->status; // 例如輸出(chu)“正常”
獲取器還可以定義數據(ju)表中不(bu)存(cun)在(zai)的(de)字段,例(li)如:
class User extends Model
{
public function getStatusTextAttr($value,$data)
{
$status = [-1=>'刪除',0=>'禁(jin)用',1=>'正常',2=>'待審核'];
return $status[$data['status']];
}
}
獲取器方法的(de)第二個參數傳入的(de)是當前的(de)所有數據(ju)數組(zu)。
我(wo)們就(jiu)可以直接使用status_text字(zi)段的值了,例(li)如:
$user = User::get(1);
echo $user->status_text; // 例如輸出“正常”
獲(huo)(huo)取(qu)(qu)器只有(you)當獲(huo)(huo)取(qu)(qu)某個數(shu)據屬性的時(shi)候自動觸發,如(ru)果你要獲(huo)(huo)取(qu)(qu)包(bao)含(han)獲(huo)(huo)取(qu)(qu)器處理的全部數(shu)據屬性的話(hua),可以使用下(xia)面的方法:
$user = User::get(1);
// 獲取全部獲取器數據
dump($user->toArray());
獲取原始數據
如果(guo)你定(ding)義了獲(huo)取(qu)器的(de)情況下(xia),希望獲(huo)取(qu)數據(ju)表中的(de)原始數據(ju),可以使用:
$user = User::get(1);
// 通過(guo)獲(huo)取器獲(huo)取字段
echo $user->status;
// 獲取原始字(zi)段數據
echo $user->getData('status');
// 獲取全部原始(shi)數據(ju)
dump($user->getData());
文檔最后更新時間:2018-04-26 10:05:26
未解決你的問題?請到「問答社區」反饋你遇到的問題
