Доброго дня
Требуется добавить поле, где присваиваются латинские буквы в Dataprovider по индексу. То есть записи каждый раз могут получать разные буквы в зависимости от параметров фильтра. Как то в SearchModel надо это реализовать.
Идеи?
Добавить поле Dataprovider
Re: Добавить поле Dataprovider
Более подробно опишете что и при каких действиях с фильтрами должно происходить. Лучше с примером.
Re: Добавить поле Dataprovider
Решил, по этому сразу напишу ответ:
Код: Выделить всё
$alphabet = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
$models=$dataProvider->getModels();
foreach ($models as $key => $m) {
$m->alpfabetic = $alphabet[$key];
}
Re: Добавить поле Dataprovider
Вы же опытный программист, для вас это подходящее решение?
1) Что будет, если записей вдруг окажется больше чем букв алфавита?
2) Преобразованиями base26 не пользовались, подобно тому как Excel преобразует?
3) Если скажем скармливать провайдер в GridView, то можно создать класс колонки для GridView, где получать индекс с учётом пагинации (как это делается можно посмотреть в классе SerialColumn) и через base26 преобразовывать в буквы. Таким образом провайдер и тем более данные из него вообще не потребуется трогать.
1) Что будет, если записей вдруг окажется больше чем букв алфавита?
2) Преобразованиями base26 не пользовались, подобно тому как Excel преобразует?
3) Если скажем скармливать провайдер в GridView, то можно создать класс колонки для GridView, где получать индекс с учётом пагинации (как это делается можно посмотреть в классе SerialColumn) и через base26 преобразовывать в буквы. Таким образом провайдер и тем более данные из него вообще не потребуется трогать.
Re: Добавить поле Dataprovider
1) Лимит пагинации - 20 записей на страницуAlexum писал(а): ↑2018.06.19, 16:03 Вы же опытный программист, для вас это подходящее решение?
1) Что будет, если записей вдруг окажется больше чем букв алфавита?
2) Преобразованиями base26 не пользовались, подобно тому как Excel преобразует?
3) Если скажем скармливать провайдер в GridView, то можно создать класс колонки для GridView, где получать индекс с учётом пагинации (как это делается можно посмотреть в классе SerialColumn) и через base26 преобразовывать в буквы. Таким образом провайдер и тем более данные из него вообще не потребуется трогать.
2) base26 можно использовать, есть ли смысл?
3) Дело в том что я скармливаю ListView и Google maps через ажакс в формате XML, поэтому надо было в модели прописать