具体怎么实现喃?考虑到一张数据表要下拉效果的字段可能有很多个,我们先在其model中实现一个方法方便后续操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/** * 下拉筛选 * @column string 字段 * @value mix 字段对应的值,不指定则返回字段数组 * @return mix 返回某个值或者数组 */ { $dropDownList = [ 'is_delete' => [ '0' => '显示' , '1' => '删除' , ], 'is_hot' => [ '0' => '否' , '1' => '是' , ], //有新的字段要实现下拉规则,可像上面这样进行添加 // ...... ]; //根据具体值显示对应的值 if ( $value !== null) return array_key_exists ( $column , $dropDownList ) ? $dropDownList [ $column ][ $value ] : false; //返回关联数组,用户下拉的filter实现 else return array_key_exists ( $column , $dropDownList ) ? $dropDownList [ $column ] : false; } |
然后我们上代码看看具体怎么实现的下拉搜索
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?= GridView::widget([ 'dataProvider' => $dataProvider , 'columns' => [ // ...... [ 'attribute' => 'is_hot' , 'value' => function ( $model ) { return Article::dropDown( 'is_hot' , $model ->is_hot); }, 'filter' => Article::dropDown( 'is_hot' ), ], [ 'attribute' => 'is_delete' , 'value' => function ( $model ) { return Article::dropDown( 'is_delete' , $model ->is_delete); }, 'filter' => Article::dropDown( 'is_delete' ), ], // ...... ], ]); ?> |
像这样,我们就简单地实现了两个下拉效果,要实现筛选功能,在你的dataProvider自定添加该字段的搜索条件即可。
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录