Фильтр товаров с пагинацией

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Фильтр товаров с пагинацией

Сообщение quasar »

Привет гуру фреймворка. Стоит задача организовать вывод товаров по фильтру -цена, размер и так далее. При этом надо чтобы была пагинация. Подскажите пожалуйста какой то пример кода решения такой задачи. Дело в том что при генерации через Gii создается SearchModel и она возвращает $dataProvider который потом передается GridView и в итоге на выходе у нас таблица с полями фильтра и пагинацией. Как эта все магия происходит в виджете и что приходит в провайдере не совсем понятно. Да можно в контроллере через if отлавливать все что приходит с поля фильтра и по условию менять запрос но контроллер разростется до неймоверных размеров. Знаю что логику фильтрации как то выносят в модель но как это делается правильно я не знаю. Буду благодарен если кто то подскажет пример кода где реализовывается подобная задача которая стоит у меня.
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Фильтр товаров с пагинацией

Сообщение rak »

ну так в SearchModel и происходит фильтрация
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Re: Фильтр товаров с пагинацией

Сообщение quasar »

Так он возвращает dataProvider как с ним дальше работать как с него делать пагинацию?
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Фильтр товаров с пагинацией

Сообщение Nicolai6120 »

Забудьте про "отлавливать ифом в контроллере". Action контроллера должен быть максимально простым: принял параметры из роута, дернул данные и передал во view, все. Такой контроллер и тестировать будет легко и просто.
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Re: Фильтр товаров с пагинацией

Сообщение quasar »

Nicolai6120 писал(а): 2017.02.18, 18:54 Забудьте про "отлавливать ифом в контроллере". Action контроллера должен быть максимально простым: принял параметры из роута, дернул данные и передал во view, все. Такой контроллер и тестировать будет легко и просто.
Я это понимаю, вот и спрашиваю как организовать это через модель.
Medic84
Сообщения: 61
Зарегистрирован: 2017.01.28, 17:48

Re: Фильтр товаров с пагинацией

Сообщение Medic84 »

Я что то не соображу в чем конкретно проблема? Вы хотите вывести информацию с пагинацией не прибегая к GridView?
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Re: Фильтр товаров с пагинацией

Сообщение quasar »

Medic84 писал(а): 2017.02.18, 21:03 Я что то не соображу в чем конкретно проблема? Вы хотите вывести информацию с пагинацией не прибегая к GridView?
Да, у меня не GridView выводится а через форич я вывожу свои блоки. Над ними надо сделать поля фильтров а под блоками панинацию
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Фильтр товаров с пагинацией

Сообщение chesar »

Пагинация : http://www.yiiframework.com/doc-2.0/yii ... ation.html

Фильтром парсите запрос, составляете sql запрос (query builder) и запрашиваете данные
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Фильтр товаров с пагинацией

Сообщение rak »

quasar писал(а): 2017.02.18, 21:58
Medic84 писал(а): 2017.02.18, 21:03 Я что то не соображу в чем конкретно проблема? Вы хотите вывести информацию с пагинацией не прибегая к GridView?
Да, у меня не GridView выводится а через форич я вывожу свои блоки. Над ними надо сделать поля фильтров а под блоками панинацию
почему не использовать ListView?
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Re: Фильтр товаров с пагинацией

Сообщение quasar »

rak писал(а): 2017.02.18, 23:12
quasar писал(а): 2017.02.18, 21:58
Medic84 писал(а): 2017.02.18, 21:03 Я что то не соображу в чем конкретно проблема? Вы хотите вывести информацию с пагинацией не прибегая к GridView?
Да, у меня не GridView выводится а через форич я вывожу свои блоки. Над ними надо сделать поля фильтров а под блоками панинацию
почему не использовать ListView?
Спасибо за подсказку посмотрю завтра как он работает.
Ответить