如何在 Html:encode 中从模型调用数组到局部视图
Posted
技术标签:
【中文标题】如何在 Html:encode 中从模型调用数组到局部视图【英文标题】:How to call an array from model to a partial view in CHtml:encode 【发布时间】:2014-09-26 06:42:50 【问题描述】:我有三个常量,
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】:你返回一个数组,如果你想得到$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));
【讨论】:
以上是关于如何在 Html:encode 中从模型调用数组到局部视图的主要内容,如果未能解决你的问题,请参考以下文章