Как добавить Yii2 jui datepicker в поле фильтра в GridView

Я использую тот же код, что и для добавления в ActiveForm, но он не работает:

Как правильно добавить jui datepicker в поле фильтра для gridview?

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yiigridSerialColumn'],

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

            ['class' => 'yiigridActionColumn'],
        ],
    ]); ?>

3 ответов


ваши виджеты неверны, и вы должны использовать html или :

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

подробнее о Форматирование Данных.


Я пробовал это и отлично работает:

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

затем вы должны добавить эту строку в свою модель поиска:

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

убедитесь, что форматы дат идентичны.


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