獲取器
版本 | 更新功能 |
---|---|
5.0.10 | 獲取器方法增加第三個(gè)參數(shù)傳入關(guān)聯(lián)數(shù)據(jù) |
獲取器
獲取器的作用是在獲取數(shù)據(jù)的字段值后自動(dòng)進(jìn)行處理,例如,我們需要對(duì)狀態(tài)值進(jìn)行轉(zhuǎn)換,可以使用:
class User extends Model
{
public function getStatusAttr($value)
{
$status = [-1=>'刪除',0=>'禁用',1=>'正常',2=>'待審核'];
return $status[$value];
}
}
數(shù)據(jù)表的字段會(huì)自動(dòng)轉(zhuǎn)換為駝峰法,一般status
字段的值采用數(shù)值類型,我們可以通過(guò)獲取器定義,自動(dòng)轉(zhuǎn)換為字符串描述。
$user = User::get(1);
echo $user->status; // 例如輸出“正常”
獲取器還可以定義數(shù)據(jù)表中不存在的字段,例如:
class User extends Model
{
public function getStatusTextAttr($value,$data)
{
$status = [-1=>'刪除',0=>'禁用',1=>'正常',2=>'待審核'];
return $status[$data['status']];
}
}
獲取器方法的第二個(gè)參數(shù)傳入的是當(dāng)前的所有數(shù)據(jù)數(shù)組。
我們就可以直接使用status_text字段的值了,例如:
$user = User::get(1);
echo $user->status_text; // 例如輸出“正常”
獲取器只有當(dāng)獲取某個(gè)數(shù)據(jù)屬性的時(shí)候自動(dòng)觸發(fā),如果你要獲取包含獲取器處理的全部數(shù)據(jù)屬性的話,可以使用下面的方法:
$user = User::get(1);
// 獲取全部獲取器數(shù)據(jù)
dump($user->toArray());
獲取原始數(shù)據(jù)
如果你定義了獲取器的情況下,希望獲取數(shù)據(jù)表中的原始數(shù)據(jù),可以使用:
$user = User::get(1);
// 通過(guò)獲取器獲取字段
echo $user->status;
// 獲取原始字段數(shù)據(jù)
echo $user->getData('status');
// 獲取全部原始數(shù)據(jù)
dump($user->getData());
文檔最后更新時(shí)間:2018-04-26 10:05:26
未解決你的問(wèn)題?請(qǐng)到「問(wèn)答社區(qū)」反饋你遇到的問(wèn)題