浅析Yii2 GridView实现下拉搜索教程


Posted in PHP onApril 22, 2016

废话不多说了,先给大家展示下效果图,如果大家还很满意请继续往下阅读:

浅析Yii2 GridView实现下拉搜索教程

具体怎么实现喃?考虑到一张数据表要下拉效果的字段可能有很多个,我们先在其model中实现一个方法方便后续操作

/**
* 下拉筛选
* @column string 字段
* @value mix 字段对应的值,不指定则返回字段数组
* @return mix 返回某个值或者数组
*/
public static function dropDown ($column, $value = null)
{
$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;
}

然后我们上代码看看具体怎么实现的下拉搜索

<?= 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自定添加该字段的搜索条件即可。

三水点靠木推荐阅读:

关于Yii2 GridView实现下拉搜索教程就给大家介绍这么多,希望对大家有所帮助!

PHP 相关文章推荐
推荐文章系统(一)
Oct 09 PHP
php创建多级目录代码
Jun 05 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
腾讯QQ微博API接口获取微博内容
Oct 30 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
PDO::setAttribute讲解
Jan 29 PHP
php和C#的yield迭代器实现方法对比分析
Jul 17 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
PHP正则表达式之RCEService回溯
Apr 11 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 #PHP
浅析Yii2中GridView常见操作
Apr 22 #PHP
php简单实现sql防注入的方法
Apr 22 #PHP
PHP简单获取及判断提交来源的方法
Apr 22 #PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 #PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 #PHP
利用php输出不同的心形图案
Apr 22 #PHP
You might like
php批量删除数据
2007/01/18 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
深入理解Django的自定义过滤器
2017/10/17 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python字典的核心底层原理讲解
2019/01/24 Python
django框架forms组件用法实例详解
2019/12/10 Python
Python 字典中的所有方法及用法
2020/06/10 Python
python实现计算图形面积
2021/02/22 Python
计算机专业学生的自我评价
2013/12/15 职场文书
小学毕业感言150字
2014/02/05 职场文书
幼儿园中班教学反思
2016/03/03 职场文书