Cara Membuat Model yang Berelasi dapat di Searching, Sorting dan Filter di YII - Dalam membuat sebuah aplikasi berbasis web, apabila aplikasi yang dibuat sangat kompleks tentunya dibangun tidak hanya dengan satu tabel, melainkan banyak tabel yang berelasi satu sama lainnya.
Dengan menggunakan yii framework dapat mempermudah melakukan relasi tabel tanpa query sql, salahsatunya adalah dengan memandaatkan model, karena yii mendukung konsep mvc, biasanya kasus ini terjadi dalam cgridview yang berelasi dan ingin data yang berelasi itu dapat di sorting, serching dan filter, berikut adalah tutorial cara membuat model yang berelasi dapat di cari, diurutkan dan di saring:
Pertama
Anda tentukan model yang akan direlasikan, disini saya punya kasus tabel Post dengan tabel Category, berarti untuk di YII dapat melakukan konfigurasi relasi di Model Post, kemudian buka Model Post.php pada folder models
Tabel Post

Tabel Kategory

Tabel Post

Tabel Kategory

Kedua
cari public function relations(), kemudian tambahkan baris kode berikut, untuk merelasikan model Post dengan Kategori, konfigurasinya pada model Post.php di folder models
'Category'=>array(self::BELONGS_TO,'Category','id_category'),
Ketiga
cari public function rules(), kemudian tambahkan baris kode untuk mencari nama kategori, contohnya disini adalah
array('categoryName', 'safe'),
Keempat
caro public function search(), kemudian anda tambahkan baris kode dibawah ini
$criteria->with = array('Category',);
$criteria->addSearchCondition('Category.name', $this->categoryName);
Kelima
Buka folder views, kemudian cari admin.php, setelah itu pada widget cgridview tambahkan baris kode berikut, agar nama kategori tadi dapat di searching, filter dan sorting
array(
'name' => 'id_category',
'value'=> '$data->Category->name',
'filter' => CHtml::activeTextField($model, 'categoryName'),
),
Menampilkan Nama Kategori pada tabel kategori di Tabel Post


Contoh Hasil Searching di Cgridview pada Model yang Berbeda

2 comments