0

我的查看代码

<?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-禁用,任何想法

4

2 回答 2

1
$text = $model->visibility == 1 ? 'enable' : 'disabled';

$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'id',
        'eventstype',
    array(
       'name' => 'visibility',
       'value' => $text,
    ),

    ),
)); ?>
于 2014-05-20T06:44:45.523 回答
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',
                    ),
                ));
?>
于 2014-05-21T07:14:34.313 回答