Select Cgridview By Attributes

hi all…i’am very newbiee in php and yii framework

i want to make this :

when i click "FST-104" or "FST-102" then go to page "/naskah/tracking/286"…on that page data displayed from database in cgridview where "apa"=286

when i click "FST-107" then go to page "/naskah/tracking/292"…on that page data displayed from database in cgridview where "apa"=292

please help me…how to create that logic in view and controller

in view- gridview - column No Urut(2nd column)

	array(


		'name'=>{No Urut FIELD},


		'type'=>'raw',


		'value'=>'CHtml::link(CHtml::encode($data->{No Urut FIELD}), "{create your url here. to access apa value use $data->apa}")'


	),

the link will now redirect to your page

then create a view that will filter according to apa value

kaquilala…thank you very much to your response :)

i have already make coding like that in view.this my code :




...

array(

			'header'=>'No Urut',

			'name'=>'aksi',

			'type'=>'html',

			'value'=>'CHtml::link(CHtml::encode($data->no_surat), array("/naskah/tracking/$data->apa/"))',

		),

...



when i click (FST-104 with apa=286) success redirect to page "tracking" with url /naskah/tracking/286…the problem is that page displayed all data in database.i just want to display where apa=286…

how code in controller? sorry for my question :unsure:

Filter the model in your controller.

$model=Model_Name::model()->find(‘apa=:apa’,array(’:apa’=>$apa));

this model will be pass by your render

this my controller:




public function actionTracking()

	{	

		$dataProvider=new CActiveDataProvider('Naskah');

		

		$model=new Naskah('search');

		$model->unsetAttributes();

		//$apa='apa';

		$model=Naskah::model()->find('apa=:apa',array(':apa'=>$apa));

		

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

			'dataProvider'=>$dataProvider,

			'model'=>$model,

		));

	}



but display PHP Notice : “Undefined variable: apa” … what should i do? :unsure:

public function actionTracking($apa=’’){

}

declare your parameter for the action

i have already declare parameter $apa…next warning is :


Fatal error: Call to a member function search() on a non-object in C:\xampp\htdocs\yii\siemo\protected\views\naskah\tracking.php on line 3 

this view of tracking :




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

   'id'=>'naskah-grid',

   'dataProvider'=>$model->search(),   // ----> this line 3 

   //'dataProvider'=> new CArrayDataProvider($model->search()),

   'filter'=>$model,

   'columns'=>array(

		array(

			'header'=>'No Urut',

			'name'=>'aksi',

			'type'=>'html',

			'value'=>'$data->no_surat',

		),	

		'apa',

		array(

		'header'=>'Nama',

		'name'=>'pengirim',

		'type'=>'raw',

		'value'=>'$data->idPengirim->idJabatan->nama',

					//'filter'=>CHtml::activeTextField($model, 'idJabatan.'),

	  ),

		  array(

			'header'=>'Jabatan',

			'name'=>'pengirim',

			'type'=>'raw',

			'value'=>'$data->idPengirim->idJabatan->jabatan',

					//'filter'=>CHtml::activeTextField($model, 'jenisSurat'),

		  ),		

	  	array(

	  'header'=>'Tanggal Kirim',

	  'name'=>'tgl_kirim',

	  'type'=>'raw',

	  'value'=>'$waktu_format = date(\'d/m/Y\',strtotime($data->tgl_kirim))',

	  ),

	),

));

?>



and this function search() in model :




public function search()

	{

		$criteria=new CDbCriteria;

		$criteria->with = array('statInbox');

		$criteria->together = true; 


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

		$criteria->compare('no_surat',$this->no_surat,true);

		$criteria->compare('tgl_kirim',$this->tgl_kirim,true);

		$criteria->compare('tgl_terima',$this->tgl_terima,true);

		$criteria->compare('perihal',$this->perihal,true);

		$criteria->compare('content',$this->content,true);

		$criteria->compare('lampiran',$this->lampiran,true);

		$criteria->compare('id_pengirim',$this->id_pengirim,true);

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

		$criteria->compare('tembusan',$this->tembusan,true);

		$criteria->compare('no',$this->no,true);

		$criteria->compare('no_referensi',$this->no_referensi,true);

		$criteria->compare('nonaskah',$this->nonaskah,true);

		$criteria->compare('track',$this->track,true);

		$criteria->compare('apa',$this->apa,true);

		$criteria->compare('id_end',$this->id_end,true);

		$criteria->compare('stat_inbox',$this->stat_inbox,true);

		$criteria->compare('stat_sent',$this->stat_sent,true);

		$criteria->compare('statInbox.nama',$this->statInbox_nama,true);

		

		$criteria->with = array('idJenissurat');

		$criteria->compare('idJenissurat.jenis_surat', $this->jenisSurat);

				

		return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

			'sort'=>array(

				'defaultOrder'=>'id_naskah DESC'

			)

		));

	}



where’s my fault?

somebody help me please…just one step again :(