get Value dari Master Table

Salam Kangen Para master Yii :D , mau nanya nih

saya punya tabel seperti ini

1840

3.JPG

tampilan awalnya(legislasi) seperti ini

1841

4.JPG

pada halaman legislasi tsb(kolom "Legislasi Pembahas") sy klik gambar icon yg ada pada salah satu data, misal pada baris pertama. maka kemudian munculah halaman Legislasi Pembahas seperti ini

1848

5.JPG

Kemudian saya tekan [tambah]

muncullah form seperti ini

1843

6.JPG

pada form tsb otomatis legislasiID di dapatkan. Kemudian sy tekan create, maka kemudian kembali di tampilkan halaman Legislasi Pembahas seperti ini

1849

7.JPG

tapi maslahnya pada kolom atas (LegislasiID dan Nama legislasi itu kosong)

sehingga kalau sy tekan [tambah] menjadi seperti ini

1845

8.JPG

ini yang jadi inti permasalahnnya, sy belum menemukan solusinya

adapaunsintaks yng sy buat seperti ini

protected/view/legislasi/index.php


<h1>Legislasi</h1>

<div class="actionBar">

[ <?php echo CHtml::link("Tambah",array('create')); ?> ]

</div>

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

	'dataProvider'=>$dataProvider,

	'columns'=>array(

		//'LegislasiID',

		//'Prolegnas',

		'NamaLegislasi',

		'JenisPengusul',

		'KomisiDep',

		'tahapLeg.TahapLeg',

		'thnLegislasi0.ThnProlegID',

		'Pengusul',

		'AlasanPengusul',

		'MateriMuatan',

		'subbid.SubbidID',

		array(

			'class'=>'CButtonColumn',

			'visible'=>!Yii::app()->user->isGuest

		),

		array(

			'name' => 'Legislasi Pembahas',

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

			'type' => 'raw',

			//'value'=>'CHtml::link(CHtml::encode($data->nama))'

			'value' =>'CHtml::link("<img src=\"images/notulen.png\">", array("legislasiPembahas/index", "lpid"=>$data->LegislasiID))',

		),		

		

	),

		

)); ?>

protected/contoller/LegislasiPembahasController.php


	public function actionCreate()

	{

		$model=new LegislasiPembahas;

		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['LegislasiPembahas']))

		{

		$lCriteria = new CDbCriteria();

		$lCriteria->select = "*";

		$lCriteria->condition = "LegislasiID = '$_GET[clpid]'";


			$model->attributes=$_POST['LegislasiPembahas'];

			if($model->save())

				$this->redirect(array('index','id'=>$model->LegislatorID));

		}


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

			'Pembahasnya'=>LegislasiPembahas::model()->findAll($lCriteria),

			'model'=>$model,

		));

	}




	public function actionIndex()

	{

	

		$lCriteria = new CDbCriteria();

		$lCriteria->select = "*";

		$lCriteria->condition = "LegislasiID = '$_GET[lpid]'";

		

		$criteria = new CDbCriteria(array(

        	'condition' => "LegislasiID = '$_GET[lpid]'",

        	'order' => 'LegislasiID DESC'

		));

		

		$dataProvider=new CActiveDataProvider('LegislasiPembahas',array(

                'criteria' => $criteria,

                'pagination' => array(

                'pageSize' => 10

        					),

                'sort' => array(

                'attributes' => array(

								'LegislatorID',

								'LegislasiID',

								'NamaPembahas',

								'AsalLembaga',

								'Interest',

								'Catatan',

                				)                    

        				)

		));

		$dataProvider=new CActiveDataProvider('LegislasiPembahas');

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

			'pembahas'=>Legislasi::model()->findAll($lCriteria),

			'dataProvider'=>$dataProvider,

		));

	}






protected/views/legislasiPembahas/index.php


<?php

$this->breadcrumbs=array(

	'Legislasi'=>array('legislasi/index'),

	'Legislasi Pembahas',

);


?>

<?php 

foreach($pembahas as $type){

	$id 		= $type->LegislasiID;

	$name 		= $type->NamaLegislasi;

}

?>

<div class="view">

<?php

        echo "<b>Product ID :</b> 		".$id; 	echo "<br>

			  <b>Product Name	:</b> 	".$name; 	echo "<br>";

?>

</div>

<h1>Legislasi Pembahas</h1>

<div class="actionBar">

[ <?php echo CHtml::link("Tambah",array('create', "clpid"=>$id)); ?> ]

</div>

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

	'dataProvider'=>$dataProvider,

	'columns'=>array(

		'LegislatorID',

		'LegislasiID',

		'NamaPembahas',

		'AsalLembaga',

		'Interest',

		'Catatan',

		array(

			'class'=>'CButtonColumn',

			'visible'=>!Yii::app()->user->isGuest

		),

	),

)); ?>

protected/views/legislasiPembahas/_form.php


<div class="form">


<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'legislasi-pembahas-form',

	'enableAjaxValidation'=>false,

)); ?>


	<p class="note">Fields with <span class="required">*</span> are required.</p>


	<?php echo $form->errorSummary($model); ?>


	<div class="row">

		<?php echo $form->labelEx($model,'LegislasiID'); ?>

		<?php echo $form->textField($model,'LegislasiID', array('value'=>''.$_GET[clpid])); ?>

		<?php echo $form->error($model,'LegislasiID'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'NamaPembahas'); ?>

		<?php echo $form->textField($model,'NamaPembahas',array('size'=>60,'maxlength'=>255)); ?>

		<?php echo $form->error($model,'NamaPembahas'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'AsalLembaga'); ?>

		<?php echo $form->textField($model,'AsalLembaga',array('size'=>60,'maxlength'=>255)); ?>

		<?php echo $form->error($model,'AsalLembaga'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'Interest'); ?>

		<?php echo $form->textField($model,'Interest',array('size'=>60,'maxlength'=>255)); ?>

		<?php echo $form->error($model,'Interest'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'Catatan'); ?>

		<?php echo $form->textField($model,'Catatan',array('size'=>60,'maxlength'=>255)); ?>

		<?php echo $form->error($model,'Catatan'); ?>

	</div>


	<div class="row buttons">

		<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>

	</div>


<?php $this->endWidget(); ?>


</div><!-- form -->

itu lah permasalahan saya para master Yii? bagaimanakah solusinya?Adakah referensi nya yg mirip seperti ini?

Maaf kalau terlalu panjang postingannya… ;D

Mohon sekali bantuannya

terimakasih

kalau:




?php

        echo "<b>Product ID :</b>               ".$id;  echo "<br>

                          <b>Product Name       :</b>   ".$name;        echo "<br>";

?>

</div>

<h1>Legislasi Pembahas</h1>

<div class="actionBar">

[ <?php echo CHtml::link("Tambah",array('create', "clpid"=>$id)); ?> ]



di ubah menjadi:




?php

        echo "<b>Product ID :</b>               ". echo $model->LegislasiID ."<br>

                          <b>Product Name       :</b>   ". echo $model->NamaLegislasi ."<br>";

?>

</div>

<h1>Legislasi Pembahas</h1>

<div class="actionBar">

[ <?php echo CHtml::link("Tambah",array('create', "clpid"=>$model->LegislasiID)); ?> ]



sebelumnya thanks udah di reply

itu kan sudah pakai "echo" jadi error, sy edit jadi seprti ini


<div class="view">

<?php

        echo "<b>Product ID :</b> 		".$model->LegislasiID; echo "<br>

			  <b>Product Name	:</b> 	".$model->NamaLegislasi; echo "<br>";

?>

</div>

<h1>Legislasi Pembahas</h1>

<div class="actionBar">

[ <?php echo CHtml::link("Tambah",array('create', "clpid"=>$model->LegislasiID)); ?> ]

</div>

cara itu ga berhasil om, malah pada saat masuk ke halaman legislasi pembahas itu langsung kosong, gmn ya?? :(

sepertinya ada di sini nih:




 $model->attributes=$_POST['LegislasiPembahas'];

                        if($model->save())

                                $this->redirect(array('index','id'=>$model->LegislatorID));



di atas kan setelah di simpan anda set di action index id dengan nilai: $model->LegislatorID

kemudian saat anda masuk ke index actionnya:




public function actionIndex()

        {

        

                $lCriteria = new CDbCriteria();

                $lCriteria->select = "*";

                $lCriteria->condition = "LegislasiID = '$_GET[lpid]'";

                

                $criteria = new CDbCriteria(array(

                'condition' => "LegislasiID = '$_GET[lpid]'",

                'order' => 'LegislasiID DESC'

                ));



seharusnya:

atau

saya coba masih salah

kenapa saya menggunakan


'condition' => "LegislasiID = '$_GET[lpid]'",

karena saya buat sintaks seperti ini di

protected/view/legislasi/index.php (udah dipost paling atas tuh ;D )


<h1>Legislasi</h1>

.....

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

        'dataProvider'=>$dataProvider,

        'columns'=>array(

                //'LegislasiID',

                //'Prolegnas',

                'NamaLegislasi',


                 .......

                array(

                        'name' => 'Legislasi Pembahas',

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

                        'type' => 'raw',

                        //'value'=>'CHtml::link(CHtml::encode($data->nama))'

                        'value' =>'CHtml::link("<img src=\"images/notulen.png\">", array("legislasiPembahas/index", "lpid"=>$data->LegislasiID))',

                ),              

                

        ),

                

)); ?> 

lihat baris terakhir, itu itu asalanya "lpid", jadi kalau sy ganti id, pasti jadi ga bisa, coba diamati tabelnya lagi om, saya masih bingung mendapatkan id dari master tabel yaitu(LegislasiID), inti permasalahnnya, Id master tidak bisa selalu di tangkap oleh childnya, bagaimana ya apakah harus pakai session? kalau pakai session bagaiamana ? mohon bantuannya

coba di view dan create tambahin ini gan.


<?php

$this->breadcrumbs=array(

	'apaajaterserah',$model->LegislasiID

);

?>

waduh ga bisa juga , gmn ya masih bingung? :(

adakah contoh kasus yang sama?

gak tampil apa2?. ada pesan error kah?.

masa sih, seharusnya pas view di awal sebelum aksi apa2 harusnya muncul.

kan di tampilan create awal bisa muncul itu LegislasiID. Kok pas breadcrums gak muncul ya.

datanya kosong, error juga ga ada.

Kan yg controllernya beda-> LegislasiController dan LegislasiPembahasController.

terus untuk mendapatkan LegislasiID itu kan berdasarkan baris data yang dia pilih gan,

protected/view/legislasi/index.php


'value' =>'CHtml::link("<img src=\"images/notulen.png\">", array("legislasiPembahas/index", "lpid"=>$data->LegislasiID))',

"lpid" yang menentukan LegislasiID mana yg di pilih, jadi permasalahnnya setelah masuk halaman child(legislasi Pembahas) dia kehilangan id masternya (LegislasiID), bisa dikatakan lepas kendali gan.

gmn tuh?

coba cek pake Tamper data gan,

pas dia create->save() dia ngirim data apa aja.

kalau untuk simpan data(legislasi pembahas) pertama kali itu bisa tapi setelah di simpan dia kan ke index lagi, nah di index sini dia ga bisa ambil ID nya, dia kehilangan LegislasiID yg pertama di pilih.

Pada saat create pertama kali di dapat LegislasiID, tapi untuk penambahan data ke-2 dst, LegislasiID ga bisa dapat lagi, kalau mau dapat LegislasiID maka dia harus ke halaman legislasi untuk dipilih LegislasiIDnya.

bagaimana nih solusinya? dari tadi ga bisa2 :(

klo di action create setelah save jadi kyk gini gimana?


<?

if($model->save())

$this->redirect(array('index','id'=>$model->LegislatorID,

		              'pembahas'=>Legislasi::model()->findAll($lCriteria)));

?>



dari pada sy bingung2 nangkep ID, lebih baik balikin saja ke halaman sebelumnya, pake javascript tentunya. alhamdulillah berhasil… he ;D

begini caranya


	public function actionCreate()

	{

		$model=new LegislasiPembahas;

		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['LegislasiPembahas']))

		{

			$model->attributes=$_POST['LegislasiPembahas'];

			if($model->save())

			echo "  <script type='text/javascript'>

  						self.history.go(-2);

 					 </script>";

		}


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

			'model'=>$model,

		));

	}

Huahahaha mantabzz, aq gak kepikiran kesana. Hebat dah gan…!!! :D