Buatlah controller baru dengan action index, kemudian isi dengan:
public function actionIndexList() { $dataProvider = new DBlog('search'); $dataProvider->attributes=$_GET['DBlog']; $this->render('admin',array( 'model'=>$dataProvider, )); }Untuk Modelnya extends dari CFormModel, karena ga pakai ActiveRecord.
class DBlog extends CFormModel { public $id; public $title; public $content; public $url; public function rules() { return array( array('id,title,content,url','safe','on'=>'search') ); } public function attributeLabels() { return array( 'id' => 'ID', 'title' => 'Title', 'content' => 'Content', 'url' => 'Url', ); } public function search() { $criteria=$this->searchCriteria(); $sql = 'SELECT * FROM blog'; $count = Yii::app()->db->createCommand('SELECT COUNT(*) FROM blog')->queryScalar(); $dataProvider=new CSqlDataProvider($sql,array( 'totalItemCount'=>$count, 'keyField'=>'id', 'pagination'=>array('pageSize'=>20), 'sort'=>array( 'attributes'=>array( 'id','title','content','url', ), ), ) ); return $dataProvider; } }Dengan pembuatan model seperti di atas, layout admin.php tidak akan berubah. Namun perlu di garisbawahi bahwa CGridView menjadi tidak searchable karena data provider tersebut tidak menyediakan mekanisme pencarian. Jika memang akan mengimplementasikan sendiri, kalian dapat membuat fungsi kriteria layaknya CDbCriteria secara manual.
No comments:
Post a Comment