我有三个常数,
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
那么如何在这里接受一个数组,或者请提出一个不同的方法。感谢。
答案 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));