yii使用dataProvider生成数据列表和筛选
来源:互联网 发布:mac能用淘宝千牛吗 编辑:程序博客网 时间:2024/06/05 06:36
conrtoller
$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
<?phpuse 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,对应一个数组键值对。
阅读全文
0 0
- yii使用dataProvider生成数据列表和筛选
- Yii DataProvider和CGridView的几个小提示
- Yii生成下拉列表
- Yii生成下拉列表
- 筛选列表中的数据
- yii 1.1.*中数据提供者CActiveDataProvider和列表显示组件CListView的使用
- TestNG同时使用DataProvider和Parameters
- python列表,字典和集合筛选数据方法
- 使用 DataView 对数据排序和筛选
- yii列表和分页
- Testng之使用@DataProvider注解做数据驱动
- dataProvider:高级数据绑定
- 使用Excel筛选数据
- 使用我们的DataProvider
- junit-dataprovider使用举例
- TestNG DataProvider 使用Demo
- TestNG DataProvider的使用
- Excel中的数据筛选和高级筛选
- python opencv入门 分水岭算法(29)
- 逆元模板
- Java基础(九)异常处理和断言
- 我的2017(上)
- spark-sql not in 优化
- yii使用dataProvider生成数据列表和筛选
- 【C++】fill函数,fill与memset函数的区别
- NYOJ【259】
- 综合导航栏的写法,导航栏
- linux根目录
- JavaWeb环境搭建史上最全(Windows系统)
- 解决Linux服务器tomact-8.0启动慢的问题
- TakePhoto 图片选择器 简单使用
- 【广告项目】钉钉实现发送通知