2014-05-20 6 views
0

내보기 코드cDetailview 표시 별명 YII

컨트롤러 코드가 기록

Id   3 
Eventstype Holiday 
Visibility 2 
Enable  0 

을 다음과 같이 표시 내보기 페이지에서

public function actionView($id) 
    { 
     $model = ManageEventsType::model()->findByAttributes(array("id" => $id)); 
       if($model){ 
       $this->render("view", array(
        "model" => $model 
       )); 
       } 
    } 

내가 수 있도록 가시성을 표시 할

<?php $this->widget('zii.widgets.CDetailView', array(
        'data'=>$model, 
        'attributes'=>array(
         'id', 
         'eventstype', 
         'visibility', 
         'enable', 
        ), 
       )); ?> 

또는 비활성화하십시오. 1- 어떤 생각

답변

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

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

    ), 
)); ?> 
+0

좋은 응답 tinybyte 하나 이상의 의심 나는 1 활성화, 2- 안 함, 3- 비활성 다음 –

+1

가 다음에 '스위치()'사용 의미 : D – tinybyte

+0

흠 .. tinybyte .. –

0

에게, 이것이 당신의 액티브 모델을 변경하는 것입니다 수행하는 '우아한'방식으로 2 안, 수 있습니다.

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; 

그래서 당신이 마지막 코드는 다음과 같이됩니다. 시야가 2 개 이상의 값을 가질 경우

<?php $this->widget('zii.widgets.CDetailView', array(
        'data'=>$model, 
        'attributes'=>array(
         'id', 
         'eventstype', 
         'visibility_text',  // <== show the new field ==> // 
         'enable', 
        ), 
       )); 
?>