Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 如何为枚举值指定别名?_Laravel_Laravel 5 - Fatal编程技术网

Laravel 如何为枚举值指定别名?

Laravel 如何为枚举值指定别名?,laravel,laravel-5,Laravel,Laravel 5,有没有给枚举值指定别名的方法?例如,我在users表中有一个名为“status”的列,其枚举数据类型的值为“0,1”。“0”表示用户处于“活动”状态,“1”表示用户处于“暂停”状态。 我在刀片模板中显示数据,如下所示 {{$user->status}} 上述代码将返回实际值,即“0”或“1”。如果状态为“0”,那么数据将显示为“活动”而不是“0”?有很多方法可以实现这一点 实现这一点的一个简单(但硬编码的方法)是在你的雄辩课堂上创建一个 public function getStatus

有没有给枚举值指定别名的方法?例如,我在users表中有一个名为“status”的列,其枚举数据类型的值为“0,1”。“0”表示用户处于“活动”状态,“1”表示用户处于“暂停”状态。 我在刀片模板中显示数据,如下所示

{{$user->status}}

上述代码将返回实际值,即“0”或“1”。如果状态为“0”,那么数据将显示为“活动”而不是“0”?有很多方法可以实现这一点

实现这一点的一个简单(但硬编码的方法)是在你的雄辩课堂上创建一个

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';
}
然后创建获取属性的方法:

protected $appends = ["active"]
public function getActiveAttribute(){
    if($this->status) {
        return 'Active';
    }
    return 'Suspended';
}
然后在视图中,您可以访问如下属性:

{{$user->active}}
要做到这一点:

{{$user->status === 0 ? 'Active' : 'not-active?'}}
你可以用这个

向名为
getStatusAttribute()
用户
模型添加一个方法:

或者,如果要保留原始状态属性并创建新属性,可以执行以下操作:

public function getStatusLabelAttribute()
{
    return $this->status ? 'Suspended' : 'Active';
}
这将被用作:

$user->status; //0 or 1
$user->status_label; //Active or Suspended 

希望这有帮助

对于这个问题,可以使用三元运算符, 例如:

{{$user->status == 1 ? "Active" : "Suspended"}}

附属品会帮你的,看一看。