2014-10-21 2 views
0

누구나 스위치/대문자 값을 CGridView 열 필드에 표시하는 방법을 알고 있습니까?Switch case inside 'value'for CDataColumn

CGridView에서 '그림', '비디오', '오디오', '그리기'유형의 DB 항목이 있지만 텍스트 대신 1, 2, 3, 4.

array(
    'name'=>'column_name', 
    'type'=>'HTML', 
    'value'=>'($data->gender=="1")?"Male":"Female"', 
), 

어떤 아이디어가 잘 될, 내가 4 필요 나는이 온라인을 발견했지만, 이것은 단지 2 개 값을 적용!

답변

2
array(
    'name'=>'column_name', 
    'type'=>'HTML', 
    'value'=>function($data){ 
     $result = 'unknown'; 
     //($data->gender=="1")?"Male":"Female" 
     switch($data->gender) 
    { 
     case 'male': 
     $result = 'this was male'; 
     break; 
    } 
    return $result; 
    }, 
), 
+0

라는 이름의 함수를 작성하는 것은 마치 마법처럼 일했다 ... 감사합니다! – RonEskinder

1

값을 결정하는 함수를 호출 할 수 있습니다. 당신의 controllor에서

'value'=>array($this,'getData') 

는 GetData의

public function getData($data,$row){ 
switch($data['gender']){ 
    <your codes here to return the result> 
} 
}