webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Как в yii2 определить запись ближайшую по дате и определить ее место в пагинации?

Как в yii2 определить запись ближайшую по дате и определить ее место в пагинации?
Допустим есть таблица с событиями у которых есть дата начала. Планирую вывести все (ListView), но пагинация изначально должна оказаться на странице, где ближайшая в будущем дата.
Сколько вариантов не перебираю в голове - все "говно код". Застрял. Нужна подсказка.
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 1
А в чем сложность ? создаете датапровайдер, делаете запрос с сортировкой по дате. Указываете какое кол-во строчек в лист вью вам нужно и после скольки создавать пагинацию

$someQuery = Category::find()->where(['status' => Coupon::STATUS_NEW])->orderby('create_at');
$yourSomeProvide r= new ActiveDataProvider([
            'query' => $someQuery,
            'pagination' => [
                'pageSize' => 8, // сколько объектов на стр.
            ],
        ]);


Далее, если orderBy вам мало, можно сделать Sort
$sort = new Sort([
            'attributes' => [
                'created_at' => [
                    'asc' => ['created_at' => SORT_ASC],
                    'desc' => ['created_at' => SORT_DESC],
                    'default' => SORT_DESC,
                    'label' => 'новизне',
                ],
            ],
        ]);


Отправка из контроллера на вьюшку, где у вас лист вью. честно не помню, каким образом работает лист вью с массивами или объектами. Но по идее должно работать.
return $this->render('index', [
            'yourSomeProvider' => $yourSomeProvider,
            'sort' => $sort,
        ]);
Ответ написан
Ваш ответ на вопрос

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

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