Adding filter to GridView widget

13,531

I have found the solution. The search model must actually be searched before attaching it to the GridView. Therefore, I just needed to add one line to get it to work:

$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

The entire code would like like that:

<?php  
   $searchModel = New CitySearch(); 
   $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
?>


<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

          //  'id',
            'city_name',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>   
Share:
13,531
Pawan
Author by

Pawan

Web Developer

Updated on July 27, 2022

Comments

  • Pawan
    Pawan over 1 year

    I am trying to add filter to GridView widget included in _form.php. The grid is showing fine, even filter field is shown, but the filter is not working.

    Here is my code:

    <?php  
       $searchModel = New CitySearch(); ?>
    
    
        <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'columns' => [
                ['class' => 'yii\grid\SerialColumn'],
    
              //  'id',
                'city_name',
    
                ['class' => 'yii\grid\ActionColumn'],
            ],
        ]); ?>