yii使用dataProvider生成数据列表和筛选
2017-08-27 14:23
696 查看
conrtoller
model
view
需要注意的:
筛选的字段必须是safeAttribute,即在rules中有定义规则的,如果没有,则load()是无法加载数据的
如果type和status等这种固定值的筛选,想要创建下拉,则可以给column列中定义filter,对应一个数组键值对。
$search = new UserAccount(); $provider = $search->search(Yii::$app->request->get()); return $this->render('search', [ 'provider' => $provider, 'searchModel' => $search, ]);
model
public function search($param) { $query = self::find()->alias('user')->joinWith(['type','status']); $provider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'pageSize' => 10, ], 'sort' => [ 'defaultOrder' => [ 'RegTime' => SORT_ASC, ] ] ]); //不通过就不增加条件,直接返回 if(!($this->load($param) && $this->validate())){ return $provider; } $query->andFilterWhere(['user.Type' => $this->Type]); $query->andFilterWhere(['user.Account' => $this->Account]); $query->andFilterWhere(['like', 'user.PhoneAddress', $this->PhoneAddress]); return $provider; }
view
<?php use yii\grid\GridView; use yii\helpers\Html; use app\models\UserAccount; ?> <?= GridView::widget([ 'dataProvider' => $provider, 'filterModel' => $searchModel, 'columns' => [ [ 'class' => 'yii\grid\SerialColumn', ], 'Account', 'UIN', [ 'attribute' => 'Type', 'value' => function($data){ return $data->type->name; }, 'filter' => UserAccount::getDictionaryDatas(UserAccount::DICTIONARY_USER_TYPE), ], 'Status', 'RegTime', 'RegSrc', 'PhoneAddress', ] ]) ?>
需要注意的:
筛选的字段必须是safeAttribute,即在rules中有定义规则的,如果没有,则load()是无法加载数据的
如果type和status等这种固定值的筛选,想要创建下拉,则可以给column列中定义filter,对应一个数组键值对。
相关文章推荐
- yii在Controller中使用CActiveDataProvider获取数据列表
- yii CListView中使用CArrayDataProvider自定义数组作为数据
- yii CListView中使用CArrayDataProvider自定义数组作为数据
- MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据
- Yii框架下使用memcached来存取数据时,key的生成方式
- 关于Yii 中使用CArrayDataProvider的CGridview 没有办法去自定义列的显示的问题
- yii CActiveDataProvider使用缓存
- [SharePoint 2010 的那些事儿-InfoPath]使用InfoPath表单筛选SharePoint列表数据
- 使用IsLine FrameWork开发ASP.NET程序之三—使用DataProvider 访问数据(下)
- YII中使用CActiveDataProvider、CDbCriteria和CGridView实现订单详情的显示
- Web自动化框架LazyUI使用手册(8)--excel数据驱动详解(ExcelDataProvider)
- [Step By Step]在SAP Business Objects Data Services中使用Row Generation Transform数据生成并导入到SAP HANA中(Row Generation Transform)
- Web自动化框架LazyUI使用手册(8)--excel数据驱动详解(ExcelDataProvider)
- DWR使用体会2:获取数据库表数据,使用addRows生成列表
- yii CActiveDataProvider的使用方法
- Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定之二:使用外部URL的XML文件)
- 使用InfoPath表单筛选SharePoint列表数据
- MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据
- MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据
- Yii:如何在CGridView列表控件使用了Ajax方式更新数据的情况下返回前一个页面