如何在 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-&gt;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 中从模型调用数组到局部视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应中从状态数组中添加或删除项目

在 Yii2 中从视图中调用模型方法

在opencv(C++)中从caffe读取多维数组

在 SwiftUI 中从数据模型中搜索数组

无法在 Codeigniter 中从模型获取查询结果到控制器

在 MVC 应用程序中从模型正确调用数据库?