Задать вопрос
@XenK

Yii2-date-range пример использования в GridView?

Использую в своем проекте kartik-v/yii2-date-range.

Возник вопрос, как его собственно использовать в GridView?

Пробовал так:

Search:
...
    public function behaviors()
    {
        return [
            [
                'class' => DateRangeBehavior::className(),
                'attribute' => 'createTimeRange',
                'dateStartAttribute' => 'createTimeStart',
                'dateEndAttribute' => 'createTimeEnd',
            ]
        ];
    }

    public function rules()
    {
        return [
            [['id', 'card_id', 'card_type_id', 'balance', 'created_at', /*'expires_at',*/
                'corporative', 'barter', 'active', 'countNew', 'status'], 'integer'],
            [['user_id'], 'safe'],
            [['createTimeRange'], 'match', 'pattern' => '/^.+\s\-\s.+$/'],
        ];
    }

    public function search($params)
    {
      ...
        $query->andFilterWhere(['>=', 'expires_at', Date('Y-m-d 00:00:00', strtotime($this->createTimeStart))])
            ->andFilterWhere(['<', 'expires_at', Date('Y-m-d 00:00:00', strtotime($this->createTimeEnd))]);
     ...
    }
...


View:
...
[
                'attribute'           => 'createTimeRange',
                'value'               => function ($model, $index, $widget) {
                    return date('Y-m-d', strtotime($model->expires_at));
                },
                //'format'              => 'date',
                'width'               => '20%',
                'filterType'          => \kartik\grid\GridView::FILTER_DATE_RANGE,
                'filterWidgetOptions' => [
                    'convertFormat'  => false,
                    'presetDropdown' => true,
                    'pluginOptions'  => [
                        'format'    => 'Y-m-d',
                        'autoclose' => true,
                    ]
                ]
            ],
...


В результате, ничего не фильтруется. Хотелось бы увидеть пример, как это должно выглядеть
  • Вопрос задан
  • 4554 просмотра
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
Доброе утро.
В самом GridView использовать можно так:
[
             'attribute' => 'created_at',
             'format' => 'datetime',
             'filter' => DatePicker::widget([
                'model' => $searchModel,
                'attribute' => 'date_from',
                'attribute2' => 'date_to',
                'type' => DatePicker::TYPE_RANGE,
                'separator' => '-',
                'pluginOptions' => ['format' => 'yyyy-mm-dd']
             ])
            ],
Ответ написан
Комментировать
@BorisKorobkov
Web developer
При чем тут DateRangeBehavior?

Примеров использования DateRangePicker полно на demos.krajee.com/date-range#usage . В частности, для фильтрации удобнее использовать пример "Advanced configuration using separate start and end attributes to store information". Дальнейшая фильтрация не отличается от любого другого поля.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы