controller中
php
public function actionIndex(){ //實例化一個用戶搜索表單 $model = new UserSFM(); //使用UserSFM模型生成一個表單 $form = new CForm($model->getFMConfig(), $model); //提交表單 $form->submitted(); //獲取查詢生成器 $criteria = $model->getCriteria(); //實例化數據提供器對象,第一個參數是查詢的AR模型類名 $dataProvider = new CActiveDataProvider('User'); //設置查詢器的查詢條件 $dataProvider->setCriteria($criteria); //設置分頁的頁大小 $dataProvider->setPagination(array('pageSize'=>3)); $this->render('index',array( 'dataProvider'=>$dataProvider, 'form'=>$form, )); }models目錄下建立一個UserSFM搜索表單
<?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * Description of UserSFM * * @author Jiulong Zhang <kowloon29320@163.com> */ class UserSFM extends CFormModel{ public $id;//定義搜索的Id屬性 public $username;//定義搜索的名字屬性 //生成表單的配置 public function getFMConfig(){ return array( 'id'=>'user_search_form', 'activeForm'=>array( 'class'=>'CActiveForm', ), 'method'=>'get', 'elements'=>array( 'id'=>array( 'type'=>'text', ), 'username'=>array( 'type'=>'text', ), ), 'buttons'=>array( 'submit'=>array( 'label'=>'搜 索', 'type'=>'submit', ), ), ); } //獲取查詢條件 public function getCriteria(){ $criteria = new CDbCriteria(); $criteria->with = array( 'city', 'user_info' ); if($this->id){ $criteria->addCondition('t.id=:id'); $criteria->params[':id'] = $this->id; } if($this->username){ $criteria->addSearchCondition('t.username', $this->username); } return $criteria; } //表單標籤顯示的名字 public function attributeLabels() { return array( 'id'=>'用戶ID', 'username'=>'用戶名' ); } //定義屬性安全後 表單中才會顯示該屬性 public function rules() { return array( array('id,username','safe'), ); } } ?>視圖index.php中只須要在CGridView的掛件上面添加以下
<h1>用戶管理</h1> <?php echo $form; ?> <?php $this->widget('zii.widgets.grid.CGridView', array( ....再次刷新就能夠看到一個帶有表單搜索功能的用戶管理列表了