Saya ingin menampilkan kolom nomor baris yang dapat difilter dan diurutkan di CGridView, tetapi yang saya dapatkan hanyalah kolom kosong yang dapat diurutkan (tajuk yang dapat diklik) dan dapat difilter (memiliki kotak teks pemfilteran di atas sana).
Di kelas model (ActiveRecord) saya telah menambahkan atribut publik baru:
public $number;
dalam fungsi rule() saya telah menambahkan:
public function rules()
{
return array(
...
...
array('
...
...
number,
',
'safe',
'on'=>'search'
),
);
}
pada fungsi pencarian(), saya juga menambahkan:
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,
));
}
Saya berhasil menggunakan metode semacam ini untuk menambahkan kolom lain. Dengan kurangnya keterampilan dan pengetahuan tentang query sqlite, saya menduga penyebab masalah ini adalah query di $criteria->select
.
Saya harap seseorang akan membantu saya untuk menyelesaikan ini.