How to add Yii2 jui datepicker to filter field in GridView

I use the same code as in ActiveForm, but it does not work:

What am I doing right to add jui datepicker to the filter field for gridview?

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

            'list_id',
            [
                'attribute' => 'channel',
                'value' => 'channel.title',
            ],
            [
                'attribute' => 'list_date',
                'value' => 'list_date',
                'filter' => \yii\jui\DatePicker::widget(\yii\jui\DatePicker::className(), ['language' => 'ru', 'dateFormat' => 'dd-MM-yyyy']),
            ],
            'make_date',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>
+6
source share
4 answers

The parameters of your widget are incorrect, and you must use the format htmlor raw:

        [
            'attribute' => 'list_date',
            'value' => 'list_date',
            'filter' => \yii\jui\DatePicker::widget(['language' => 'ru', 'dateFormat' => 'dd-MM-yyyy']),
            'format' => 'html',
        ],

Read more about data formatting .

+1
source

I tried this and worked great:

[
    'attribute' => 'updated_at',
    'value' => 'updated_at',
    },
    'filter' => \yii\jui\DatePicker::widget([
        'model'=>$searchModel,
        'attribute'=>'updated_at',
        'language' => 'ru',
        'dateFormat' => 'dd-MM-yyyy',
    ]),
    'format' => 'html',
],

Then you should add this line to your search model:

$query->andFilterWhere([
    ......
    'DATE(updated_at)' => $this->updated_at,
]);

Make sure the date formats are identical.

+11
source
 [
            'attribute' => 'updated_at',
            'value' => 'updated_at',
            },
            'filter' => \yii\jui\DatePicker::widget([
                    'model'=>$searchModel,
                    'attribute'=>'updated_at',
                    'language' => 'ru',
                    'dateFormat' => 'dd-MM-yyyy',
                ]),
            'format' => 'html',
        ],
+1

.

use kartik\date\DatePicker;

gridview

[
             'attribute' => 'order_date',
             'value' => 'order_date',
             'format' => 'raw',
             'label' => "Order Date",
             'filter' => DatePicker::widget([
                 'model' => $searchModel,
                 'name' => 'OrdersdropSearch[order_date]',
                 'value' => ArrayHelper::getValue($_GET, "OrdersdropSearch.order_date"),
                 'pluginOptions' => [
                     'format' => 'yyyy-mm-dd',
                     'autoclose' => true,
                 ]
             ])
         ],

.

0

Source: https://habr.com/ru/post/1568293/


All Articles