Я хочу показать фильтруемый и сортируемый столбец с номером строки в CGridView, но у меня есть только пустой сортируемый (кликабельный заголовок) и фильтруемый (у него есть фильтрующее текстовое поле) столбец.
В классе модели (ActiveRecord) я добавил новый общедоступный атрибут:
public $number;
в функции rules() я добавил:
public function rules()
{
return array(
...
...
array('
...
...
number,
',
'safe',
'on'=>'search'
),
);
}
в функции search() я также добавил:
public function search()
{
$criteria=new CDbCriteria;
...
...
$number_select = '(
select count(*)
from tbl_mytable as k
where k.id <= t.id
)';
$criteria->select = array(
$number_select . ' as number',
't.*',
);
...
...
$criteria->compare($number_select, $this->number,true);
$sort = new CSort;
$sort->attributes = array(
'*',
...
...
'number'=>array(),
);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'sort'=>$sort,
));
}
Я успешно использую этот метод для добавления других столбцов. Из-за отсутствия навыков и знаний о запросе sqlite я подозреваю, что причиной этой проблемы является запрос в файле $criteria->select
.
Я надеюсь, что кто-то поможет мне решить эту проблему.