Halo sahabat selamat datang di website seputaryii.xyz, pada kesempatan hari ini kita akan membahas seputar Yii Framework â€" Menampilkan data relasi pada CGridView oleh - seputaryii.xyz, kami sudah mempersiapkan artikel tersebut dengan informatif dan akurat, silahkan membaca

Untuk beberapa kasus, kita memerlukan untuk menampilkan data yang berelasi pada CGridView. Secara default hasil generate gii tidak menangani kasus ini, oleh karena itu pada artikel ini kita akan membahas bagaimana cara menampilkan data pada CGridView dari model yang berelasi.

Hasil generate gii

CGridView Yii Framework

Bisa dilihat pada contoh diatas, hasil generate gii secara default menampilkan nilai id provinsi, bukan nama provinsi. Dari sisi user pengguna, akan lebih mudah dan nyaman jika melihat nama provinsi bukan id provinsi.

Terdapat 2 model, Provinsi dan Kabupaten dengan relasi sebagai berikut :

// model Provinsi class Provinsi extends CActiveRecord {     // ...     public function relations()     {         return array(             'kabupatens' => array(self::HAS_MANY, 'Provinsi', 'id_provinsi')         );     }     // ... }  // model Kabupaten class Kabupaten extends CActiveRecord {     // ...     public function relations()     {         return array(             'provinsi' => array(self::BELONGS_TO, 'Provinsi', 'id_provinsi')         );     }     // ... }

dan kode default pada CGridView adalah

$this->widget('zii.widgets.grid.CGridView', array(     'id'=>'kabupaten-grid',     'dataProvider'=>$model->search(),     'filter'=>$model,     'columns'=>array(         'id',         'nama',         'id_provinsi',         array(             'class'=>'CButtonColumn',         ),     ), ));

Untuk menampilkan nama provinsi, kita akan menggunakan relasi yang ada pada model Kabupaten (provinsi).

public function relations() {     return array(         'provinsi' => array(self::BELONGS_TO, 'Provinsi', 'id_provinsi')     ); }

Yang kita perlukan hanya mengubah value kolom id_provinsi dengan nama provinsi melalui relasi yang sudah didefinisikan di model.

$this->widget('zii.widgets.grid.CGridView', array(     'id'=>'kabupaten-grid',     'dataProvider'=>$model->search(),     'filter'=>$model,     'columns'=>array(         'id',         'nama',         array(             'name' => 'id_provinsi',             'value' => function($data) {                 return $data->provinsi->nama;             }         ),         array(             'class'=>'CButtonColumn',         ),     ), ));

Dengan kode di atas hasil yang akan ditampilkan sebagai berikut:

Data Relasi CGridView

Itulah tadi informasi dari idn poker mengenai Yii Framework â€" Menampilkan data relasi pada CGridView oleh - seputaryii.xyz dan sekianlah artikel dari kami seputaryii.xyz, sampai jumpa di postingan berikutnya. selamat membaca.