有沒有辦法給枚舉值賦予別名?例如,我在具有值「0,1」的枚舉數據類型的用戶表中將此列稱爲「狀態」。 「0」值表示用戶處於「活動」狀態,「1」表示用戶處於「暫停」狀態。 我顯示在葉片模板中的數據這樣如何給枚舉值賦予別名?
{{$user->status}}
上面的代碼將返回真值,即「0」或「1」。如果狀態爲「0」,那麼數據將顯示爲「活動」而不是「0」?
有沒有辦法給枚舉值賦予別名?例如,我在具有值「0,1」的枚舉數據類型的用戶表中將此列稱爲「狀態」。 「0」值表示用戶處於「活動」狀態,「1」表示用戶處於「暫停」狀態。 我顯示在葉片模板中的數據這樣如何給枚舉值賦予別名?
{{$user->status}}
上面的代碼將返回真值,即「0」或「1」。如果狀態爲「0」,那麼數據將顯示爲「活動」而不是「0」?
有很多方法可以實現這一點。
一,簡單(但硬編碼的方式)來實現,這是對你的口才類中創建一個accessor,像這樣:
public function getStatus()
{
$statuses = [
0 => 'Active',
1 => '....'
];
return $statuses[$this->status];
}
{{ $user->getStatus() }}
它很棒!謝謝 –
您可以在用戶模式做到:
添加的 「活躍」 屬性:
protected $appends = ["active"]
public function getActiveAttribute(){
if($this->status) {
return 'Active';
}
return 'Suspended';
}
然後對你的看法,你可以訪問該屬性是這樣的::
{{$user->active}}
只是爲了做到這一點:
{{$user->status === 0 ? 'Active' : 'not-active?'}}
你然後對得到的屬性創建方法可以使用Accessors。
添加一個方法到你的User
模式叫getStatusAttribute()
:
public function getStatusAttribute($status)
{
return $status ? 'Suspended' : 'Active';
}
或者,如果你想保持原來的狀態屬性,並創建一個新的屬性,你可以這樣做:
public function getStatusLabelAttribute()
{
return $this->status ? 'Suspended' : 'Active';
}
這將用作:
$user->status; //0 or 1
$user->status_label; //Active or Suspended
H這有助於!
您可以使用三元運算符對於這個問題, 例如:
{{$user->status == 1 ? "Active" : "Suspended"}}
Accessores會幫助你,看看[這裏](https://laravel.com/docs/5.4/eloquent-mutators )。 – milo526