美文网首页Yii2.0
yii2 gridview 列格式设置--设置枚举类型

yii2 gridview 列格式设置--设置枚举类型

作者: BL_Fang | 来源:发表于2017-08-18 17:25 被阅读17次

    假如某个变量仅有几种取值方式,如文章有发表于未发表、性别有男或女等,那么在gridview列设置的时候该如何做?

    如对于一篇文章而言,仅有草稿与发表两种状态,则在gridview中可以设置为

        [
            'attribute'=>'status',
            'value' => function($model){
                $status = [
                    News::STATUS_DRAFT => '草稿',
                    News::STATUS_PUBLISH => '已发表',
                ];
                return $status[$model->status];
            },
            'filter' => [
                News::STATUS_DRAFT => '草稿',
                News::STATUS_PUBLISH => '已发表',
            ],
    
        ],
    
    

    这里,attribute 表示需要设置的属性,它的值对应于模型中的属性;value表示该属性的取值,在本文中使用匿名函数,根据模型中status的具体取值而显示草稿或者已发表filter用于设置搜索框中的内容,在这里使用一个数组,将生成一个下拉菜单,其中包含了两个选项,这两个选项分别为草稿已发表

    这里默认选择为空,如果要使得默认选择为全部,则需要改变设置方式,最方便的方法为设置filter为下拉列表的html字符串

    /*
    dropDownList的用法:
        public static string dropDownList ( $name, $selection = null, 
    $items = [], $options = [] )
    */
    'filter' => Html::dropdownList($searchModel, 'state', [
                News::STATUS_DRAFT => '草稿',
                News::STATUS_PUBLISH => '已发表',
            ], ['prompt'=>'全部']);
    

    这里,prompt表示默认选择全部。

    相关文章

      网友评论

        本文标题: yii2 gridview 列格式设置--设置枚举类型

        本文链接:https://www.haomeiwen.com/subject/xaklittx.html