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

时间:2014-09-26 06:42:50

标签: 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::STATUS_DENY=>'Denied',
    );
}

现在我希望名称显示在视图中而不是数字

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

显示数字,并执行此操作,

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

我得到了

htmlspecialchars() expects parameter 1 to be string, array given 

那么如何在这里接受一个数组,或者请提出一个不同的方法。感谢。

1 个答案:

答案 0 :(得分:1)

您返回一个数组,如果您想获取$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));