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( ....再次刷新就能够看到一个带有表单搜索功能的用户管理列表了