Php 如何在CHtml中从模型调用数组到局部视图:encode

Php 如何在CHtml中从模型调用数组到局部视图:encode,php,yii,view,Php,Yii,View,我有三个常数 const STATUS_PENDING=1; const STATUS_APPROVED=2; const STATUS_DENY=3; 对于他们,我有这个方法 public function getLeaveStatus() { return array( self::STATUS_APPROVED=>'Approved', self::STATUS_PENDING=>'Pending', self::STA

我有三个常数

const STATUS_PENDING=1;
const STATUS_APPROVED=2;
const STATUS_DENY=3;
对于他们,我有这个方法

public function getLeaveStatus()
{
    return array(
        self::STATUS_APPROVED=>'Approved',
        self::STATUS_PENDING=>'Pending',
        self::STATUS_DENY=>'Denied',
    );
}
现在我想在视图中显示名称,而不是数字

<?php echo CHtml::encode($leave->status);?>

那么如何在这里接受数组,或者请建议一种不同的方法。谢谢。

您返回了一个数组,如果您想获得
$leave->status的状态名称,您应该使用这个

public function getLeaveStatus($status)
{
   $statusNames = array(
    self::STATUS_APPROVED=>'Approved',
    self::STATUS_PENDING=>'Pending',
    self::STATUS_DENY=>'Denied',
   );

   return  $statusNames[$status];
}
结束回显它:

echo CHtml::encode($leave->getLeaveStatus($leave->status));
public function getLeaveStatus($status)
{
   $statusNames = array(
    self::STATUS_APPROVED=>'Approved',
    self::STATUS_PENDING=>'Pending',
    self::STATUS_DENY=>'Denied',
   );

   return  $statusNames[$status];
}
echo CHtml::encode($leave->getLeaveStatus($leave->status));