Filter Cgridview (Super Duper Newbie)

Salam semua,

ane baru belajar Yii, kaga ngerti java, OOP dsbnya…tapi ane berusaha memahaminya.

ane berhasil instal Yii dan tertarik ama Cgridview untuk menampilkan data, masuk ke Gii tinggal klik dan semuanya dah jadi, tapi ane kaga terima begitu saja karena masih blm paham.

CRUD generator mampu membuat n menampilkan data dari table yg diinginkan, data grid tampil sempurna dengan filter dan form pencariannya, tapi hanya tampil jika kita masuk sebagai admin.

ane dah berhasil menampilkan data dengan Cgridview, tapi masih belum paham dengan cara menambahkan baris filter pada Cgridview, tanpa masuk/login sbg admin tentunya.

bagaimana cara menambahkan baris filter pada tampilan Gridview, apakah harus menambahkan action, form atau lainnya, mohon bimbingannya…

table:

book(id,title,status)

controller:




<?php


class BookController extends Controller

{

	public function actionIndex()

	{	$dora=new CActiveDataProvider('Book');

		$this->render('index',array('doraemon'=>$dora,));

		//$this->render('index');

	}

}

?>



index.php






&lt;?php &#036;this-&gt;widget('zii.widgets.grid.CGridView', array(


	'dataProvider'=&gt;&#036;doraemon,


	'columns'=&gt;array(


		'id',


		'title',


		'status',


		array(


			'class'=&gt;'CButtonColumn',


		),


	),


)); ?&gt;

3583

My Web Application - Book - Mozilla Firefox 09122012 231153.bmp

sorry klo udah pernah dibahas sebelumnya

Coba untuk liat di trit ini gan Kumpulan Trit Yii, didalam nya terdapat info mengenai filter CGridView, atau dapat buka link ini.

makasih atas referensinya, setelah diutak dan diatik ternyata ketemu juga cara memunculkan baris filter pada Cgridview

controller




<?php


class BookController extends Controller

{

        public function actionIndex()

        {       $dora=new CActiveDataProvider('Book');

                $this->render('index',array('doraemon'=>$dora,));

                //$this->render('index');

        }

}

?>



ditambahin menjadi:




<?php


class BookController extends Controller

{

        public function actionIndex()

        {       $model=new Book('search');

		$model->unsetAttributes();

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

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


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

                                             'model'=>$model,

                                            ));


        }

}

?>



dan index.php



&lt;?php &#036;this-&gt;widget('zii.widgets.grid.CGridView', array(


        'dataProvider'=&gt;&#036;doraemon,


        'columns'=&gt;array(


                'id',


                'title',


                'status',


                array(


                        'class'=&gt;'CButtonColumn',


                ),


        ),


)); ?&gt;

diubah menjadi



&lt;?php &#036;this-&gt;widget('zii.widgets.grid.CGridView', array(


        'dataProvider'=&gt;&#036;model-&gt;search(),


        'filter'=&gt;&#036;model,


        'columns'=&gt;array(


                'id',


                'title',


                'status',


                array(


                        'class'=&gt;'CButtonColumn',


                ),


        ),


)); ?&gt;

intinya (dengan bahasa saya sendiri)

variable $model search harus di definisikan terlebih dahulu di controller, baru kemudian dipanggil di file index.php,

di kasus sebelumnya ane hanya terpaku pada $dora yg ternyata sebuah CactiveRecord murni yg belum di kenakan fungsi search

mohon koreksinya bagi para master (dengan bahasa yg lebih mudah dipahami tentunya)

jika kesimpulan ane kurang benar

Sep gan… terimakasih untuk sharingnya gan.

+1 utk agan… :o