Php TbDetailView自定义属性GetStatusName

Php TbDetailView自定义属性GetStatusName,php,yii,yii-extensions,Php,Yii,Yii Extensions,试图在TbDetailView上使用我的模型函数GetStatusName,但它不起作用。 它在TbGridView上正常工作 模型函数: public function getStatusName() { switch($this->status) { case self::STATUS_ACTIVE: return 'Active'; break; case self::STATUS_DEL

试图在
TbDetailView
上使用我的模型函数
GetStatusName
,但它不起作用。 它在
TbGridView
上正常工作

模型函数:

public function getStatusName()
{
    switch($this->status)
    {
        case self::STATUS_ACTIVE:
            return 'Active';
            break;
        case self::STATUS_DELETED:
            return 'Deleted';
            break;
        default:
            return 'Unknown';
            break;
    }
}
代码:


或:



在输入后编辑。

CDetailView
中,
值必须直接指定,不带引号。该值与
CGridView
中的值不同,因此请使用:

array('name' => 'status', 'type' => 'text', 'value' => $model->statusName)

下面是一个小示例,我现在了解了如何使用格式化值:

    <?php $this -> widget('bootstrap.widgets.TbDetailView', array(
            'data' => $user,
            'type' => 'bordered striped condensed',
            'attributes' => array(
                    'name',
                    array(
                            'name' => 'birthDate',
                            'value' => Yii::app()->dateFormatter->format("dd.MM.yy", strtotime('$data->birthDate')),
                    ),
                    'code',
            ),
    ));
    ?>


没有关系属性。请参阅原始帖子(已更新)。第一个选项:Yii错误:未定义的变量:数据第二个选项:致命错误:调用未定义的函数getStatusName()Yii错误:未定义的变量:dataoops以前没有完整地看到您的代码,它应该是
$model
,基本上,您可以使用传递给视图的任何模型对象直接调用函数。更新答案。
<?php
$this->widget('bootstrap.widgets.TbDetailView',array(
   'type'=>'bordered condensed',
   'data'=>$model,
   'attributes'=>array(
       'name',
       array('name' => 'status', 'type' => 'text', 'value' => $data->statusName),
   ),
));
?>
<?php
$this->widget('bootstrap.widgets.TbDetailView',array(
   'type'=>'bordered condensed',
   'data'=>$model,
   'attributes'=>array(
       'name',
       array('name' => 'status', 'type' => 'text', 'value' => getStatusName($data->getStatusName)),
   ),
));
?>
array('name' => 'status', 'type' => 'text', 'value' => $model->statusName)
    <?php $this -> widget('bootstrap.widgets.TbDetailView', array(
            'data' => $user,
            'type' => 'bordered striped condensed',
            'attributes' => array(
                    'name',
                    array(
                            'name' => 'birthDate',
                            'value' => Yii::app()->dateFormatter->format("dd.MM.yy", strtotime('$data->birthDate')),
                    ),
                    'code',
            ),
    ));
    ?>