Setelah kita membicarakan ORM search pada CGRidView Yii, maka kita akan membicarakan mengenai ORM pada advanced search. Tidak semua search yang kita inginkan akan ditampilkan dalam setiap kolom tampilan, karena akan memperpanjang tampilan kita. Untuk itu kita dapat menambahkan filtering pada advanced search.
Untuk advanced search yang barada di dalam tabel class itu sendiri sudah disediakan saat code generation, tutorial kali ini akan menambahkan search yang terkait dengan tabel lain.
Misal di dalam class SendOrder memiliki relations:
‘customer’ => array(self::BELONGS_TO, ‘TblCustomer’, ‘customer_id’),
Pada TblCustomer ini ada customer_code dan kita ingin supaya bisa melakukan searching dari sana, maka berikut langkah-langkahnya
- Tambahan pada view _search.php misalnya:
<div class=”row”>
<label><?php echo “Customer Code”; ?></label>
<?php
echo CHtml::textField(“customer_code”,$_GET[‘customer_code’]);
?>
</div> - Relasikan pada search()
$criteria->with= array(‘customer’=>array(‘select’=>’customer_code,customer_name’),
‘invoiceCustomer’=>array(‘select’=>’invoice_no’),
);
Pada contoh di atas kita merelasikan dua tabel yaitu TblCustomer dan invoiceCustomer, kemudian kita definisikan juga field yang akan disearch. - Tambahkan compare terkait customer_code
$customer_code=trim($_GET[‘customer_code’]);
$criteria->compare(‘customer.customer_code’,$customer_code,true); - Silahkan mencoba
Kunjungi www.proweb.co.id untuk menambah wawasan anda.