No more nonsense, let me show you the renderings first. If you are still satisfied, please continue reading:
How to implement it specifically? Considering that a data table may have many fields that require drop-down effects, we first implement a method in its model to facilitate subsequent operations
/** * 下拉筛选 * @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; }
Then let’s go to the code to see how to implement the drop-down search
<?= 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'), ], // ...... ], ]); ?>
Like this, we have simply implemented two drop-down effects. To implement the filtering function, just add the search conditions for this field in your dataProvider.
Bangkejia recommends reading:
A brief analysis of common operations of GridView in Yii2
Tips for loading css and js at the bottom of yii2 page
A brief analysis of Yii2 GridView date formatting and making dates searchable tutorial
A brief analysis of Yii2 GridView implementation of drop-down search tutorial
This is all about the Yii2 GridView implementation drop-down search tutorial. I hope it will be helpful to you!