作者:白狼出處: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自定添加該字段的搜尋條件即可
以上就介紹了yii2 GridView 下拉搜尋實作案例教程,包括了GRIDVIEW方面的內容,希望對PHP教程有興趣的朋友有所幫助。