浅析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 相关文章推荐
聊天室php&amp;mysql(六)
Oct 09 PHP
在线增减.htpasswd内的用户
Oct 09 PHP
基于PHP array数组的教程详解
Jun 05 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
php递归函数怎么用才有效
Feb 24 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 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
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
原生js实现日期联动
2015/01/12 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
用Webpack构建Vue项目的实践
2017/11/07 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
UML设计模式笔试题
2014/06/07 面试题
大学生毕业自我鉴定范文
2013/09/19 职场文书
承诺书的格式范文
2014/03/28 职场文书
销售工作决心书
2015/02/04 职场文书
毕业感言怎么写
2015/07/31 职场文书
小学体育教学随笔
2015/08/14 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
Java实现房屋出租系统详解
2021/10/05 Java/Android
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android
Python使用Web框架Flask开发项目
2022/06/01 Python