[SOLVED] FindAll Query gak mau keluar

Halooo…Agan2. mau nanya query di Yii ini. Masih agak bingung cara ngeluarinnya. Klo fungsi query saya rasa ud bener. Tinggal ngeluarin datanya aja yang saya belom ngerti.

begini.

Ini Controlernya


<?php

//

$model = new Skdata;

$criteria = new CDbCriteria;

$namanya = $_POST['nama_lengkap'] ; 

$criteria->condition='nama_lengkap = :carinama ';

$criteria->params=array(':carinama'=> $namanya);

$model = Skdata::model()->findAll($criteria);

//

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

	      'model'=>$model,

	      ));

?>



Ini Viewnya


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

        'id'=>'skdata-grid',

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

        'filter'=>$model,

        'selectableRows' => 2,

        'columns'=>array( array(

				

                  'class'=>'CCheckBoxColumn', 

                  'cssClassExpression' => '\'myCheckBox\'',           

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

                         ),

		'nik',

		'nama_lengkap',

                    array(

	                'class'=>'CButtonColumn',

	                         'buttons'=>array(

                            'delete'=>array('invisible' => '$data->id ==  Yii::app()->user->id;',)

                            'update'=>array('invisible' => '$data->id == Yii::app()->user->id;',),

	                    'view'=>array('invisible' => '$data->id == Yii::app()->user->id;',),

			)

		),

	),

	));

?>



Klo pake find($criteria) ini hasilnya keluar satu record.

Tapi klo pake findAll($criteria). Keluar pesan error kyk gini gan.

Fatal error: Call to a member function search() on a non-object , baris ini gan


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

Itu gimana harusnya gan?.

CGridView itu Sourcenya harus CActiveDataProvider bukan Model. Model yang dilempar dari Controller hanya untuk kebutuhan Filter, so semestinya di Controller itu hanya:

$model = new Skdata;

$this->render(‘listsk’,array(

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


          ));

dan di Model Skdata, ke Public Function Search baru kamu masukin criterianya…

$criteria = new CDbCriteria;

$namanya = $_POST[‘nama_lengkap’] ;

$criteria->condition='nama_lengkap = :carinama ';

$criteria->params=array(’:carinama’=> $namanya);

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

‘criteria’=>$criteria,

));

Sorry nggak di test codenya, tapi idenya seperti itu kira2…

numpang nanya bedanya


$model=new Barang('search');

sama ini


$model=new Barang;

apa y??

==============================================

MR.D

ini yang di load cuma fungsi search , yang ada di class model Barang


$model=new Barang('search');

ini yang di load semuanya , yang ada di class model Barang


$model=new Barang;

[klo gak salah itu juga :D << sok taunya saya aja ini mah ^_^]

MR.D

ini yang di load cuma fungsi search , yang ada di class model Barang


$model=new Barang('search');

ini yang di load semuanya , yang ada di class model Barang


$model=new Barang;

[klo gak salah itu juga :D << sok taunya saya aja ini mah ^_^]

[/quote]

kok kalau di pake (‘search’) sama ga di pake sama aja hasilnya… :blink:

sama2 mengcreate new Model, tapi new Barang(‘search’) akan mengaktifkan Rules yang ada di model. Perhatian baris ini di rules model

public function rules()


{


      .................


	array('input_date, no_ref, koord_lokal_id, status_payment_id', 'safe', 'on'=&gt;'search'),


       ............


     }

Apa itu Rules Safe? Baca artikel ini

http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules

Semoga membantu…

Lupa gak disolved, ud berhasil gan. Thx :D