myks92
@myks92
Нашёл решение — пометь вопрос ответом!

Yii ListView — как сделать разбивку данных по датам?

Всем доброго вечера! Есть ListView, который выводит список записей. Необходимо разделение данных на странице по годам.

Пример
2018
Документ дата
документ дата
документ дата
документ дата

2017
документ дата
документ дата

А сейчас так

2018 Документ дата
2018 документ дата
2018 документ дата
2018 документ дата

2017 документ дата
2017 документ дата

В цикле это можно сделать примерно так:
$year = 0;
if ($row['year'] != $year) {
  $year = $row['year'];
  echo '<h2>'.$row['year'].'</h2>';
}


Возможно ли сделать подобное в ListView?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
kawabanga
@kawabanga
Максим Ворожцов, я бы отказался от listview. зачем он вам нужен? Работайте с dataProvider (getModels()).

А решение вашего кейса, возможно через дополнительные параметры передавать весь массив dataProvider, сверять дату с предыдущим элементом массива и выводить.

UPD. Еще два варианта подъехало, пока чай пил:
2) унаследоваться от listView, и в нем хранить переменную года
3) хранить в каком нибудь общем хранилище год

Кстати несколько вопросов на подумать
- в чем смысл сортировки по годам такой? может изначально строить провайдер данных основываясь на год?
- возможно проще будет поставить галочки, и выводить обычным массивом без listview?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы