PolarBear
(Potyomkinsergey)
1
В CGridView есть столбец значения которого 1 либо 0. Каким образом заставить вместо 1 или 0 отображать соответственно "ВКЛ" или "ВЫКЛ".
Значения поместил в маcсив, но как их прицепить, подскажите.
class MyClass extends CActiveRecord
{
public $my_ar = array( '1'=>"ВКЛ", '0'=>"ВЫКЛ");
.....
Charger
(Charger)
2
в CGridView укажи столбец не строкой ‘field’ а массивом
array('name'=>'field', 'value'=>'$data->getFieldAsString()'),
ну и задай в моделе метод "getFieldAsString" который будет возвращать строку
PolarBear
(Potyomkinsergey)
3
Каким образом можно передать текущее значение в функцию getFieldAsString()?
Charger
(Charger)
4
Нет, имелось в виду что этот метод должен возвращать строковое значение. Т.е. выглядеть как-то так
function getFieldAsString(){
$arr=array( '1'=>"ВКЛ", '0'=>"ВЫКЛ");
return $arr[$this->field];
}
PolarBear
(Potyomkinsergey)
5
Спасибо, то что надо.
Еще такой вопрос. Добавил фильтр, значения беру из массива описанного в классе. Выпадающий список создаётся, но фильтрация не работает.
array(
'name' => 'field',
'value' => '$data->getFieldAsString()',
'filter'=> MyClass::model()->my_ar,
)
Что я забыл?
Charger
(Charger)
6
Если не указывать ‘filer’ то фильтр будет по (0,1)… если вам нужен фильтр выпадабщим списком, то нужно
filter=>array(0=>'...', 1=>'...');
или заменить массив на вызов функции, которая этот массив вернет
PolarBear
(Potyomkinsergey)
7
Спасибо, Charger.
Забыл модифицировать в модели функцию search()