Dalam menampilkan data menggunakan cGridView Yii ada kalanya ada field yang tidak ada sortingnya. Ini terjadi jika berelasi dengan tabel lain. Dalam artikel ini akan dijelaskan bagaimana membuat suatu field yang sebelumnya tidak ada sortingnya menjadi ada sortingnya.

Misal kita memiliki tabel customer_ar di mana terhubung dengan tbl_customer melalui field customer_id. Dalam model class CustomerAr relasi ditunjukkan dengan customer. Kemudian ketika ditampilkan dalam CGridView menggunakan customer.customer_name tidak ada fasilitas sortingnya. Bagaimanakah menambahkannya ?

Kita kemudian mengedit CustomerAr pada function search dan tambahkan criteria-join seperti contoh berikut:
        $criteria=new CDbCriteria;
        $criteria->join =”INNER JOIN tbl_customer c ON  c.customer_id=t.customer_id”;

Kemudian tambahkan coding sort:
        $sort = new CSort();
        $sort->attributes = array(
         ‘customer.customer_name’=>array(
        ‘asc’=>’c.customer_name ASC’,
        ‘desc’=>’c.customer_name DESC’,
    ),
        );

Kemudian tambahkan sort ini pada CActiveDataProvider.
        return new CActiveDataProvider($this, array(
            ‘criteria’=>$criteria,
            ‘sort’=>$sort,
        ));

Artikel selanjutnya http://www.proweb.co.id/articles/web_application/orm_search_cgridview_yii.html .

Kunjungi www.proweb.co.id untuk menambah wawasan anda.

Customize sort CGridView di Yii