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

可視性を enable または disable として表示したい。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 に答える