我的观看代码
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'eventstype',
'visibility',
'enable',
),
)); ?>
控制器代码
public function actionView($id)
{
$model = ManageEventsType::model()->findByAttributes(array("id" => $id));
if($model){
$this->render("view", array(
"model" => $model
));
}
}
在我的视图页面中,记录显示如下
Id 3
Eventstype Holiday
Visibility 2
Enable 0
我希望将可见性显示为启用或禁用。 1-启用,2-禁用, 任何想法
答案 0 :(得分:1)
$text = $model->visibility == 1 ? 'enable' : 'disabled';
$this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'eventstype',
array(
'name' => 'visibility',
'value' => $text,
),
),
)); ?>
答案 1 :(得分:0)
“优雅”的方法是更改ActiveRecord模型。
class ManageEventsType extends CActiveRecord
{
/* Give it a name that is meaningful to you */
public $visibility_text;
...
}
这将通过创建附加属性来扩展您的模型。
在模型中,然后添加(并覆盖)afterFind()函数。
class ManageEventsType extends CActiveRecord
{
public $visibility_text;
protected function afterFind ()
{
$this->visibility_text = (($this->visibility) == 1)? 'enabled' : 'disabled');
parent::afterFind (); // Call the parent's version as well
}
...
}
这将有效地为您提供一个新字段,因此您可以执行以下操作:
$eventTypeModel = ManageEventsType::model()->findByPK($eventTypeId);
echo 'The visibility is .'$eventTypeModel->visibility_text;
所以你最终的代码看起来像这样。
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'eventstype',
'visibility_text', // <== show the new field ==> //
'enable',
),
));
?>