nampilin cgridview dari 2 model

pemisi masta-masta,

sy mau nanya gimana caranya menampilkan data di cgridview dari 2 model??

jadi cuma buka salah satu viewnya kita bisa liat data dari kedua model…

maklum masi nubi… ::)

mohon pencerahannya!!

Model yang berelasi di definisikan di relastion…

kemudian di view… ditampilkan saja…!

trimakasih sudah menjawab, B)

sy coba uraikan permasalahannya lebih lengkap…

ada 3 tabel, pengguna(id_pengguna,username,paswd),

         agenda(id_agenda,id_pengguna,waktu,rincian)


         agenda_terima(id_penerima, id_agenda).

pengguna bisa membuat agenda dan mengirimkan ke beberapa pengguna sekaligus,

sy menggabungkan 2 model dan 1 form untk input data,

setelah kesimpan ke masing-masing model, sy mau coba menampilkan datanya di cgridview melalui view satu model saja dengan join kedua tabel itu…

kira2 kalo sql-nya begini:

select * from agenda a,

where a.id_agenda=t.id_agenda AND a.id_pengguna=t.idpenerima

from agenda a, agenda_terima t

tp bingung gmn cara implementasinya di YII;

ada yang bisa membantu??? ???

coba baca-baca dulu artikel disini Guide

ini lumayan sering ditanyain,

coba diubek2 dulu deh

ini coding yang sudah saya coba, referensinya dari http://www.kaskus.us/showthread.php?t=5611940&page=8 :

controller


public function actionAdmin()

	{

                //$criteria=new CDbCriteria;

                $model=new AgendaTerima('search');


                //data at first, default data with condition :

                $merge=new CDbCriteria;

                $merge->condition = 'agenda.id_pembuat = t.id_penerima';

                $merge->join = 'JOIN agenda ON agenda.id_agenda = t.id_agenda';


                //if any filter in gridview

                if(isset($_GET['AgendaTerima']))

                {

                        $model->attributes=$_GET['AgendaTerima'];

                        $model->id_penerima = Yii::app()->user->getId();

                        $merge->condition = 'agenda.id_pembuat = t.id_penerima';

                        $merge->join = 'JOIN agenda ON agenda.id_agenda = t.id_agenda';

                }


                $this->render('admin',array(

                        'model'=>$model,

                        'merge'=>$merge,

                            ));


	}

model


 public function search($merge=null)

	{

		// Warning: Please modify the following code to remove attributes that

		// should not be searched.


		$criteria=new CDbCriteria;

                

                $criteria->compare('t.id_agenda',$this->id_agenda,true);

		$criteria->compare('id_ag_terima',$this->id_ag_terima);

		$criteria->compare('id_penerima',$this->id_penerima);

		//$criteria->compare('id_agenda',$this->id_agenda);

		$criteria->compare('status',$this->status);


                 if($merge!==null)

                    $criteria->mergeWith($merge);


		return new CActiveDataProvider(get_class($this), array(

			'criteria'=>$criteria,

		));

	}

view


<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'agenda-terima-grid',

        'dataProvider'=>$model->search($merge),

	'filter'=>$model,

	'columns'=>array(

		'id_ag_terima',

		'id_penerima',

		'id_agenda',

                array(

                   'name' =>'rincian',//dari tabel relasi agenda

                    'value'=> '$data->rincian'//colom rincian, tapi error AgendaTerima.rincian is not defined. 

                    ),

               

		'status',

		array(

			'class'=>'CButtonColumn',

		),

	),

)); ?>

CException:

Property "AgendaTerima.rincian" is not defined.

ada petunjuk atau saran????

saya coba membantu, semoga dapat berguna. data yang diberikan merupakan ilustrasi dan percobaan yang saya lakukan.

DB

relasi antara tbl_category dan tbl_channel didefinisikan di model Channel

model


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(

    'categories' => array(self::BELONGS_TO, 'Category', 'id_category'),

    // 'itemchannels' => array(self::HAS_MANY, 'Itemchannel', 'id_channel'),

  );

}

pada views->channel->admin.php ditampilkan sebagai berikut

view




<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'channel-grid',

	'dataProvider'=>$model->search(),

	//'filter'=>$model,

	'columns'=>array(

		'id',

		'id_category',

		array(

			'name'=>'categories.name', // "nama relasi.nama kolom pada database"

			'type'=>'raw',

			'value'=>'$data->categories->name', //menampilkan record dari kolom name pada tbl_category.

		),

		'name',

		'image_file',

		'add_date',

		'link',

		array(

			'class'=>'CButtonColumn',

		),

	),

)); ?>