2016-12-13 2 views
0

내 컨트롤러 코드를 다음 있습니다 :yii에서 저장된 데이터에 새 값을 할당하는 방법 1?

public function actionAdmin() 
{ 
    $model=new MForm('search'); 
    $model->unsetAttributes(); // clear any default values 
    if(isset($_GET['ChManageForm'])) 
     $model->attributes=$_GET['ChManageForm']; 

    $this->render('admin',array(
     'model'=>$model, 
    )); 
} 

const member=1; 
const district=2; 

내보기 (호출 관리자)의 열라는 이름

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'ch-manage-form-grid', 
    'dataProvider'=>$model->search(), 
    'filter'=>$model, 
    'columns'=>array(
     'id', 
     'form_name', 
     'region', 
     'phone_number', 
     'email', 
     array(
      'class'=>'CButtonColumn', 
     ), 
    ), 
)); ?> 

1과 2가 나타납니다 (내 뷰 파일) 및이 열의 값은 정수 형식으로 저장됩니다. 나는 숫자 대신 회원 및 지구를 표시해야합니다 (내보기 (관리자)) (예 : 1 대신 멤버). 내가 어떻게 해?

+0

뭘 하시겠습니까? 형식을 잘 설명하십시오. –

+0

form_name 필드에서 데이터는 정수 형식으로 저장됩니다. 내보기 파일에 숫자 대신 텍스트를 표시하려고합니다. 대신 멤버 대신 1, 2 대신 지구. – phpdev

답변

1

또한이 같은 그리드 뷰 열 (모델의 도우미를 필요로하지 않는다)를 지정할 수 있습니다 : 당신은 단지 변수에이 값이있는 경우

array(
    'name'=>'form_name', 
    'value'=>'$data->form_name ? \'Member\':\'District\'', 
    'type'=>'text', 
), 

이 잘 작동합니다.

자세한 내용을 보려면이 URL을 방문하십시오.

http://www.yiiframework.com/forum/index.php/topic/14845-if-condition-inside-cgridview/

편집 :

당신이 2 개 이상의 값을 가질 경우, 당신은 CGridView에 사용

모델 : CGridView와

public function getValueText() { 
     return $this->getValueTextOptions[$this->form_name]; 
} 

public function getValueTextOptions() { 
     return array(
       1 => 'Member', 
       2 => 'District', 
     ); 
} 

보기 :

array(
    'name'=>'form_name', 
    'value'=>'$data->getValueText()', 
) 
+0

아니, 나는 많은 가치가있다 – phpdev

+0

@phpdev 여러 값에 대한 내 대답 편집. –