Фильтр товаров с пагинацией
Фильтр товаров с пагинацией
Привет гуру фреймворка. Стоит задача организовать вывод товаров по фильтру -цена, размер и так далее. При этом надо чтобы была пагинация. Подскажите пожалуйста какой то пример кода решения такой задачи. Дело в том что при генерации через Gii создается SearchModel и она возвращает $dataProvider который потом передается GridView и в итоге на выходе у нас таблица с полями фильтра и пагинацией. Как эта все магия происходит в виджете и что приходит в провайдере не совсем понятно. Да можно в контроллере через if отлавливать все что приходит с поля фильтра и по условию менять запрос но контроллер разростется до неймоверных размеров. Знаю что логику фильтрации как то выносят в модель но как это делается правильно я не знаю. Буду благодарен если кто то подскажет пример кода где реализовывается подобная задача которая стоит у меня.
Re: Фильтр товаров с пагинацией
ну так в SearchModel и происходит фильтрация
Re: Фильтр товаров с пагинацией
Так он возвращает dataProvider как с ним дальше работать как с него делать пагинацию?
-
- Сообщения: 143
- Зарегистрирован: 2014.08.13, 15:08
Re: Фильтр товаров с пагинацией
Забудьте про "отлавливать ифом в контроллере". Action контроллера должен быть максимально простым: принял параметры из роута, дернул данные и передал во view, все. Такой контроллер и тестировать будет легко и просто.
Re: Фильтр товаров с пагинацией
Я это понимаю, вот и спрашиваю как организовать это через модель.Nicolai6120 писал(а): ↑2017.02.18, 18:54 Забудьте про "отлавливать ифом в контроллере". Action контроллера должен быть максимально простым: принял параметры из роута, дернул данные и передал во view, все. Такой контроллер и тестировать будет легко и просто.
Re: Фильтр товаров с пагинацией
Я что то не соображу в чем конкретно проблема? Вы хотите вывести информацию с пагинацией не прибегая к GridView?
Re: Фильтр товаров с пагинацией
Пагинация : http://www.yiiframework.com/doc-2.0/yii ... ation.html
Фильтром парсите запрос, составляете sql запрос (query builder) и запрашиваете данные
Фильтром парсите запрос, составляете sql запрос (query builder) и запрашиваете данные