Pada tutorial kali ini kami akan membahas menangani search yang terhubung ke tabel lain.

Misal ada sebuah tabel purchase_order dengan field seperti di bawah ini

Pada tabel purchase_order tersebut ada field vendor_id yang terhubung ke tabel vendor seperti gambar di bawah ini:

Relasi pada model PurchaseOrder.php adalah seperti berikut:
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(

——–cut—————
            ‘vendor’ => array(self::BELONGS_TO, ‘TblVendor’, ‘vendor_id’),
——–cut—————        );
    }

Kemudian kita mempunyai tampilan search seperti berikut ini:

Supaya search bisa berjalan maka pada model PurchaseOrder.php sesuaikan:
    public function search()
    {
        // Warning: Please modify the following code to remove attributes that
        // should not be searched.

        $criteria=new CDbCriteria;
        
        $criteria->join =”INNER JOIN tbl_vendor v ON  v.vendor_id=t.vendor_id”;
        //$criteria->compare(‘vendor_id’,$this->vendor_id);
        $criteria->compare(‘v.vendor_name’,$this->vendor_id,true);

Kemudian views/purchaseOrder/admin.php
$this->widget(‘zii.widgets.grid.CGridView’, array(
    ‘id’=>’purchase-order-grid’,
    ‘ajaxUpdate’=>false,
    ‘dataProvider’=>$model->search(),
    ‘filter’=>$model,
    ‘columns’=>array(
————-cut————-
        ‘vendor.vendor_name’,
————-cut————-

Selamat mencoba.

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

 

 

Menangani search yang join ke table lain di Yii