[SOLVED] CGridView dari Join Table ?

Pagi Semua…

Sorry nih kalo pertanyaannya dasar banget… maklum baru belajar Yii dan baru dengan OOP, udah coba searching2 n baca2 user guidenya tp masih mentok,

Jadi gini, sy punya dua tabel tbl_barang dan tbl_pembelian, nah pada saat bikin pake Gii kan hasilnya langsung dr tabelnya ya… misal untuk yg tbl_pembelian kan jadinya model Pembelian dan di CGridView kan yg di tampilin semua yg ada di tbl_pembelian , nah karena di tbl_pembelian itu ada id_barang dr tabel barang , sy maunya di CGridView nya Pembelian itu bukan pake id_barang tp nama_barang dr tbl_barang. caranya gimana ya…mohon bantuannya

Thx

Ian

di bagian column pada CGridView nya

coba di masukkan nilai

array(

‘name’=>‘id_barang’,

‘header’=>‘Nama Barang’,

‘value’=>’$data->barang->nama_barang’

),

dmana barang pada $data->barang->nama_barang, adalah nama relasi ke tbl_barang (property relation di model)

thx atas bantuannya mas… tp datanya blm keluar nih… apakah di relasi sy ada yg salah




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(

                    'data' => array(self::BELONGS_TO,'Barang','id_barang')

		);

	}



itu relasi yg ada di model Penjualan dan ini CGridView yg dah sy ubah :




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

	'id'=>'penjualan-grid',

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

	//'filter'=>$model,

	'columns'=>array(

		'id',

		'id_pelanggan',

		'id_barang',

		'harga',

		'metode_bayar',

		'jumlah_bayar',

		/*

		'jumlah_utang',

		'jatuh_tempo',

		*/

                array(

                    'name'=>'id_barang',

                    'header'=>'Nama Barang',

                    'value'=>$data->Barang->nama_barang,

                    ),

		array(

			'class'=>'CButtonColumn',

		),

	),

));



Kira2 salah dimananya ya…

apakah tbl_barang dgn tbl_penjualan secara database harus di bikin relasi juga ? (sy pake MyIsam)

Thx

Ian

kalo untuk gridview menggunakan query yang agak ribet, ketimbang pake CActiveDataProvider (dengan Model dari CActiveRecord), lebih enak pake CSqlDataProvider aja (http://www.yiiframework.com/doc/api/1.1/CSqlDataProvider)

relasinya udah benar ko bro cm ngambil di Cgridview nya aja kurang tepat :D

‘value’->’$data->barang->harga’,

dmana barang dganti dengan nama relasi nya yaitu data.

dari




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(

                    'data' => array(self::BELONGS_TO,'Barang','id_barang')

		);

	}



jadi

‘value’=>’$data->data->harga’

heeee… jd malu… maklumin ya :)

ok mas sudah SOLVED … lancar…

Thx banget… sangat sangat membantu.

Thx buat masukannya mas… yg eksisting skarang juga sy pake CSqlDataProvider , setelah mentok dgn CGridView,

Tp ada masalah lg… yg Searchingnya harus di Custom lg + yg CButtonColumn … pas klik edit dkk ,id nya ga dapet (kyaknya harus di custom juga) … jd sy coba balik lg ke CGridView … maklum pemula … kesana-ksini menthok … :)

Thx buat sarannya

hehehe, sama lah kita kan juga nebie jg.

hehehe…btw Thx

newbie jg ne gan … masih suka baca kamus class reference.

suka lupa2… wwkwkwk, ada yg punya panduan penggunaan class reference Yii yg efektif gak ya.

hehehehe

dokumentasi yang dibuat yii udah bagus ko gan,hi…hi.:D

halo para agan-agan Yii

saya mengalami masalah yang sama dengan topik diatas, kasus saya sama persis :




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

	'data'=>$model,

	'attributes'=>array(

		'id',

		'NIK',

		array(

			'name'=>'id_relation',

			'header'=>'Type Relation',

			'value'=>$family_relation->family_relation->Relation,

			),

		/*'id_relation',*/

		'Name',

		'date_of_birth',

		'sex',

	),



untuk relasinya seperti dibawah ini,




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(

		'family_relation'=>array(self::BELONGS_TO,'HrdRelation','id_relation'),

		'family_employees'=>array(self::BELONGS_TO,'HrdEmployees','NIK'),

		);

	}



masalahnya pada saat di jalankan header masih tetap muncul Id Relation dan value-nya masih id_relation, mohon koreksi agan-agan sekalian

maaf masih newbie di PHP, SQL dan Yii

terima kasih sebelumnya

coba:

attribut labelnya ini ‘id_relation’, diganti dengan ‘Type Relation’ dan ‘header’=> dihapus aja.

kemudian ane bingung di ‘value’=>$family_relation->family_relation->Relation,

$family_relation itu apa ya?

coba spt ini: ‘value’=>$model->family_relation->Relation,

wah sudah bisa gan, terima kasih banyak.

‘value’=>$family_relation->family_relation->Relation, yang diatas adalah copy dari ‘value’=>’$data->data->harga’ milik agan iansyah_vox, yang sebelumnya sy tulis ‘value’=>$data->family_relation->Relation, namun gagal jg, maklum masih perlu baca-baca lagi tutornya

kembali kasih gan…, btw ni lapak udah dikasi tanda [SOLVED] jd klo da pertanyaan buat lapak baru lg aja ya gan.

sekalian nitip lapak

http://www.yiiframework.com/forum/index.php?/topic/14721-sok-atuh-yg-mo-bikin-kaos-yii/page__view__findpost__p__74539

punya saya juga sudah Solved teman2 tapi untuk searching nya ko ga jalan yah?

Ga jalannya kenapa, gan? Ada pesan errornya ga? Kalau atribut-atribut yang mau dicari udah dimasukkan ke fungsi rules() di model?

sebelumnya minta maaf mengganggu…

masih bingung untuk menampilkan model dari tabel lain dengan syarat parameter tertentu dengan perintah cgridview …??

ini viewnya




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

	array(  

		'id'=>'thread-grid',

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

		'emptyText'=>'Belum ada thread pada kategori ini',

		//'filter'=>$model, 

		'enablePagination'=>false,

		'summaryText'=>'',

		'columns'=>array( 

			array( 

				'name'=>'Judul',

				'type'=>'raw', 

				'htmlOptions'=>array('style'=>'text-align: center'),

				'value'=>'Chtml::link($data->judul,array(\'thread/view\',\'id\'=>$data->id))',

				),

			),

		 )); ?>




dan ini function relasinya




	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(


			'namarelasi' => array(self::BELONGS_TO, 're', 'kategori_id'),


		);

	}



ini function search




	public function search()

	{

		// @todo Please modify the following code to remove attributes that should not be searched.


		$criteria=new CDbCriteria;


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

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


		return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

		));

	}



tolong ya di bantu