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