浅析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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
php实现只保留mysql中最新1000条记录
Jun 18 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
php文件上传原理与实现方法详解
Dec 20 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
一个MYSQL操作类
2006/11/16 PHP
jQuery 源码分析笔记
2011/05/25 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
关于PHP开发的9条建议
2015/07/27 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
素质拓展感言
2014/01/29 职场文书
党员志愿者活动方案
2014/08/28 职场文书
升国旗演讲稿
2014/09/05 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书