尝试在GetStatusName
上使用我的模型函数TbDetailView
,但它不起作用。
它在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;
}
}
代码:
<?php
$this->widget('bootstrap.widgets.TbDetailView',array(
'type'=>'bordered condensed',
'data'=>$model,
'attributes'=>array(
'name',
array('name' => 'status', 'type' => 'text', 'value' => '$data->statusName'),
),
));
?>
查看:
Name John
Gender $data->statusName
答案 0 :(得分:4)
在CDetailView
中,value
必须直接指定,不带引号。 CGridView
中的值不是eval,所以请使用:
array('name' => 'status', 'type' => 'text', 'value' => $model->statusName)
答案 1 :(得分:2)
<?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)),
),
));
?>
编辑后编辑。
答案 2 :(得分:2)
这是一个小例子,我现在发现如何处理格式化值:
<?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',
),
));
?>