IvanFantoM
@IvanFantoM
PHP-разработчик

Как в Yii2 вывести N записей в обратном порядке с помощью ListView?

Доброго времени суток!

Подскажите, как реализовать вывод 10 последних сообщений на странице так, чтобы последнее сообщение отображалось внизу, а первое из этих 10 - вначале.
Также требуется по запросу подгружать еще 10 предшествующих сообщений.
Сортировка осуществляется по дате создания сообщения в БД.

Controller:
$dataProvider = new ActiveDataProvider([
            'query' => Message::find()->orderBy('created_at DESC'),
            'pagination' => [
                'pageSize' => 10,
            ],
        ]);
return $this->render('view', ['dataProvider' => $dataProvider]);

View:
echo \yii\widgets\ListView::widget([
            'dataProvider' => $dataProvider,
            'itemView' => '_message',
            'layout' => "{items}",
        ]);


Проблема в том, что сейчас я получаю либо 10 старых сообщений в правильном порядке (если убрать DESC из orderBy() ), либо 10 последних сообщений в неверном порядке (последнее сообщение сверху, а должно быть снизу).
  • Вопрос задан
  • 608 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Мне кажется, что проще данную задачу решить в js. Так как играясь с сортировкой в dataProvider можно получить очень костыльное решение и поехавшую пагинацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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