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

  • 相关阅读:
    积水路面Wet Road Materials 2.3
    门控时钟问题
    饮料机问题
    Codeforces Round #340 (Div. 2) E. XOR and Favorite Number (莫队)
    Educational Codeforces Round 82 (Rated for Div. 2)部分题解
    Educational Codeforces Round 86 (Rated for Div. 2)部分题解
    Grakn Forces 2020部分题解
    2020 年百度之星·程序设计大赛
    POJ Nearest Common Ancestors (RMQ+树上dfs序求LCA)
    算法竞赛进阶指南 聚会 (LCA)
  • 原文地址:https://www.cnblogs.com/wwolf/p/5425136.html
Copyright © 2011-2022 走看看