二十二、搜索表单CFormModel
通常我们有列表展示还是不够的,我们需要给列表增加一个搜索的功能 这就需要我们用到表单,YII的表单模型有两种,一种是CActiveRecord模型,一种是CFormModel,两者都支持数据验证等功能,唯一的区别是CFormModel不能插入到数据库,而AR可以插入到数据库,所以对于不需要插入到数据库的表单我们推荐使用CFormModel 因为搜索表单的表单比较简单,主要是文本输入框和下拉选项还有按钮,所以搜索的表单我们建议使用表单生成器CForm来完成 下面我来举例进行说明: 比如我想在列表的上面增加一个表单用来根据用户的id来搜索,并将对应的数据列表展示出来 controller中 public function actionIndex(){ //实例化一个用户搜索表单 $model = new UserSFM(); //使用UserSFM模型生成一个表单 $form = new CForm($model->getFMConfig(), $model); //提交表单 $form->submitted(); //获取查询生成器 $criteria = $model->getCriteria(); //实例化数据提供器对象,第一个参数是查询的AR模型类名 $dataProvider = new CActiveDataProvider('User'); //设置查询器的查询条件