zoukankan      html  css  js  c++  java
  • yii2 GridView 下拉搜索实现案例教程

    作者:白狼 出处:http://www.manks.top/article/yii2_gridview_dropdown_search本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    下拉搜索,我们先来看看预期的效果图

    具体怎么实现喃?考虑到一张数据表要下拉效果的字段可能有很多个,我们先在其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自定添加该字段的搜索条件即可

  • 相关阅读:
    第13周学习进度情况
    【Android进阶】获取Android软件的版本信息
    【Android进阶】Android程序与JavaScript之间的简单调用
    字符串长度
    约瑟夫问题
    输入n个数和输出调整后的n个数
    输入三个整数,按由小到大的顺序输出
    学校oj平台上不去
    输入10个整数
    输入三个字符串,按由小到大的顺序输出
  • 原文地址:https://www.cnblogs.com/wwolf/p/5425136.html
Copyright © 2011-2022 走看看