这篇文章给大家介绍怎么在YII2框架中使用ActiveDataProvider和GridView,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
具体如下:
YII2中ActiveDataProvider可以使用yii\db\Query或yii\db\ActiveQuery的对象,方便我们构造复杂的查询筛选语句。
配合强大的GridView,快速的显示我们想要的数据。
通过上面的两个工具,我们快速的显示用户表信息。用户表结构如下:
我们创建一个用户模型MyUser.php,代码如下:
$query,
//设置分页参数
'pagination'=>[
//分页大小
'pageSize'=>3,
//设置地址栏当前页数参数名
'pageParam'=>'p',
//设置地址栏分页大小参数名
'pageSizeParam'=>'pageSize',
],
//设置排序
'sort'=>[
//默认排序方式
'defaultOrder'=>[
'id'=>SORT_DESC,
],
//参与排序的字段
'attributes'=>[
'id','name','sex','age'
],
],
]);
//如果验证没通过,直接返回
if(!($this->load($params)&&$this->validate())){
return$provider;
}
//增加过滤条件
$query->andFilterWhere(['id'=>$this->id])
->andFilterWhere(['like','name',$this->name])
->andFilterWhere(['sex'=>$this->sex])
->andFilterWhere(['age'=>$this->age]);
return$provider;
}
}
然后,创建控制器TestController.php,代码如下:
search(YII::$app->request->get());
return$this->render('test',[
'model'=>$user,
'provider'=>$provider,
]);
}
}
视图页面test.php,代码如下:
显示我选中的