Cgridview - Подстановка Значений Из Масива

В CGridView есть столбец значения которого 1 либо 0. Каким образом заставить вместо 1 или 0 отображать соответственно "ВКЛ" или "ВЫКЛ".

Значения поместил в маcсив, но как их прицепить, подскажите.


class MyClass extends CActiveRecord

{


	public $my_ar = array( '1'=>"ВКЛ", '0'=>"ВЫКЛ");


.....

в CGridView укажи столбец не строкой ‘field’ а массивом




array('name'=>'field', 'value'=>'$data->getFieldAsString()'),



ну и задай в моделе метод "getFieldAsString" который будет возвращать строку

Каким образом можно передать текущее значение в функцию getFieldAsString()?

Нет, имелось в виду что этот метод должен возвращать строковое значение. Т.е. выглядеть как-то так




function getFieldAsString(){

$arr=array( '1'=>"ВКЛ", '0'=>"ВЫКЛ");

return $arr[$this->field];

}



Спасибо, то что надо.

Еще такой вопрос. Добавил фильтр, значения беру из массива описанного в классе. Выпадающий список создаётся, но фильтрация не работает.


array(

	'name' => 'field',

	'value' => '$data->getFieldAsString()',

	'filter'=> MyClass::model()->my_ar,

)

Что я забыл?

Если не указывать ‘filer’ то фильтр будет по (0,1)… если вам нужен фильтр выпадабщим списком, то нужно


filter=>array(0=>'...', 1=>'...');

или заменить массив на вызов функции, которая этот массив вернет

Спасибо, Charger.

Забыл модифицировать в модели функцию search()