Friday, July 22, 2011

Menampilkan data di GridView dengan CSqlDataProvider

Di Yii ada 2 class data provider yang disediakan untuk bisa menjadi sumber data pada grid view / list view. Bedanya adalah asal data itu dihasilkan. Jika CSqlDataProvider data yang kita perolah kita proses dari Sintax SQL (String), sedangkan CActiveDataProvider kita peroleh dari Class (Object) ActiveRecord.

Pada artikel ini akan di bahas tentang pengunakan CSqlDataProvider sebagai sumber data dalam Sebuah Gridview.

1. Kita anggap kita sudah belajar Yii sebelumnya, jadi untuk cara-cara pembuatan file controller, view sudah kita pahami.
2. Pada controller kita buat fungsi untuk mengambil data.
public function getCustomerList(){

// Ambil data Customer list
$sql ="SELECT a.*,b.name as groupname
FROM `customer` as a
left join customer_group as b
on a.customer_group_id = b.customer_group_id";

//menentukan jumlah baris yang ada(ini akan berhubungan dengan pagination)
$count = Yii::app()->db->createCommand('select COUNT(*) from customer')->queryScalar();

//buat sql data provider
$dprov = new CSqlDataProvider($sql,array(
'totalItemCount'=>$count,
'keyField'=>'customer_id',
'pagination'=>array('pageSize'=>20),
'sort'=>array(
'attributes'=>array(
// kode ini jika adalah menempatkan atribut yang bisa di sorting/urutkan.
'firstname','lastname','groupname','email','date_added','status','telephone'
),
),
)
);
return $dprov;

}

public function actionGridViewList(){
$model = $this->getCustomerList();

$this->render('/account/admin',array('model'=>$model));
}
3. kita buat kode di bagian viewnya (untuk menampilkan data di CGridView).

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'gridcust',
'dataProvider'=>$model,
'enableSorting'=>true,
'columns'=>array(


array(
'header'=>'Nama Customer'),
'value'=>'$data[firstname]." ".$data[lastname]',
'name'=>'firstname',
),
array(
'header'=>Yii::t('MGlobal', 'tbl.email'),
'name'=>'email',
),


array( // display a column with "view", "update" and "delete" buttons
'class'=>'CButtonColumn',
),


),
));

4. dan jika anda berhasil makan hasilnya akan tampil seperi gambar dibawah ini


reference:
* www.yiiframework.com

Labels:

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home