Ketika kita menampilkan data melalui CGridView Yii mungkin kita akan melakukan sorting tertentu. Misalnya dalam dokumen sales order kita akan melakukan sorting data berdasarkan tanggal sales order. Tetapi bukankan akan banyak sales order pada tanggal yang sama ? Manakah data yang akan muncul lebih dahulu untuk tanggal sales order yang sama ? Keadaan ini memungkinkan ada sales order yang berulang saat kita pindah halaman, atau ada sales order yang tidak tampil waktu kita mencari sales order berdasarkan tanggal sales order.
Untuk mengatasi kekacauan tampilan data karena ketidakjelasan sorting maka kita perlu menambahkan tambahan sorting supaya urutannya lebih pasti misal kita menambahkan sorting nama dokumen karena nama dokumen adalah selalu unik.
Untuk menambahkan tambahan sorting ini kita dapat mengedit function search() pada model misal dengan coding seperti di bawah ini:
return new CActiveDataProvider($this, array(
‘criteria’=>$criteria,
‘sort’=>array(
‘attributes’=>array(
‘customer_search’=>array(
‘asc’=>’customer.customer_name’,
‘desc’=>’customer.customer_name DESC’,
),
‘sales_order_date’=>
[
‘asc’=>’t.sales_order_date ASC, t.sales_order_no’,
‘desc’=>’t.sales_order_date DESC, t.sales_order_no’,
],
‘*’,
),
),
));
Terlihat bahwa sorting untuk sales_order_date ada tambahan sales_order_no . Untuk field-field lain default seperti adanya dituliskan dalam baris berikutnya yaitu ‘*’,
Kunjungi www.proweb.co.id untuk menambah wawasan anda.