Как можно реализовать фильтры для товаров? Чтобы выглядело как у интернет-магазинов - слева сайдбар с фильтрами, остальное место страницы - товары. Нужно юзать GridView|ListView или еще что?
Можно юзать GridView|ListView, можно написать свой виджет, можно просто html во view файле. Ваш вопрос видимо из разряда "как сверстать", а это вопрос ни как не относящийся к yii.
LucasP: GridView - это виджет, он просто генерирует html базируясь на данных переданных в него в dataProvider. Так что видимо Вам надо прокачать свой html. Как работают формы и т.д.
Он делает get запросы, которые может делать любая форма. При создании стандартного CRUD через gii она даже генерируется. Файл "_search" в папке с view-шками. Далее вопрос верстки, хоть слева ставьте, хоть в модалку засовывайте.
Идет запрос, в нем параметры, соответственно dataProvider уже содержит другие данные и gridView их отображает. Вся фильтрация происходит в SearchModel а не в gridView.
Очень актуально, в скором времени тоже такое буду делать.
Пока что выявил полезный js компонент для фильтра цен, но еще пока под вопросом - как синхронизировать его с _search и dataProvider, видимо Ajax или Pjax ionden.com/a/plugins/ion.rangeslider
Если у Вас получится интегрировать в dataProvider, черканите - как)
EVOSandru6: А что там такого? Делаете виджет, подключаете этот js как зависимость. Он формирует инпут, где через точку с запятой прописаны два значения, соответственно в поисковой модели что-то такое:
Благодарю. Не знал как создавать виджеты для нестандартных инпутов, нашел: https://github.com/yii2mod/yii2-ion-slider . Сейчас буду разбирать.
Как раз добрался до данной задачи. Интересует такой вопрос - как сделать сортировку через связанные данные:
У меня есть:
Предложения:
offers
.id
Купоны;
deals
.id
.percent(NULL)
.price(NULL)
Нужно фильтровать offers относительно вложенных в него deals
Если я правильно понимаю - во первых нужно в OffersSearch добавить эти поля в свойства класса и rules
А вот как правилььно сделать andWhere через связь
class Offers extends ActiveRecord{
...
public function getOffers()
...
}
Тут возникают непонятки.
1. OffersSearch -> relation andwhere
2. Условие фильтрации должно удовлетворять, если хоть один deals каждого вакантного offer-а отвечает условиям фильтра.
Максим Тимофеев, проблема в схеме базы. Т.е. необходимо создать 2 таблицы: Product (описание продукта), Filter (параметры фильтрации под каждый продукт), верно?