Реализация фильтров на Yii2
- Tonni_regoletti
- Сообщения: 52
- Зарегистрирован: 2019.10.11, 09:16
Реализация фильтров на Yii2
Здравствуйте.
Подскажите пожалуйста, какие существуют методики в создании фильтров по категориям и ценам товаров.
Я понимаю как можно реализовать такой фильтр, но хочу сделать это правильно и красиво.
Вопрос конечно достаточно общий, но если можно хотя бы укажите направление в котором можно идти.
Заранее спасибо
Подскажите пожалуйста, какие существуют методики в создании фильтров по категориям и ценам товаров.
Я понимаю как можно реализовать такой фильтр, но хочу сделать это правильно и красиво.
Вопрос конечно достаточно общий, но если можно хотя бы укажите направление в котором можно идти.
Заранее спасибо
Re: Реализация фильтров на Yii2
Смотря какой вариант понравится тебе самому, так и делать.
Можно сделать в верхнем блоке сортировку. Такого плана
Можно сделать такого плана как в большинстве магазинов делают Фильтры
Если сильно не заморачиваться, то просто Обычный поиск
P.S. у меня вот так, только фильтры сразу закрыты Скриншот
Можно сделать в верхнем блоке сортировку. Такого плана
Можно сделать такого плана как в большинстве магазинов делают Фильтры
Если сильно не заморачиваться, то просто Обычный поиск
P.S. у меня вот так, только фильтры сразу закрыты Скриншот
- Tonni_regoletti
- Сообщения: 52
- Зарегистрирован: 2019.10.11, 09:16
Re: Реализация фильтров на Yii2
Спасибо за ответ.
Я не совсем о том, как организовать логику работы.
То есть как это должно выглядеть в беке ?
Я не совсем о том, как организовать логику работы.
То есть как это должно выглядеть в беке ?
Re: Реализация фильтров на Yii2
Во-1 у тебя идет вывод данных из какой-то основной модели.
Предположим это Product. Создается модель ProductSearch, которая расширяется (extends) основной моделью Products
Все твои фильтры должны отдавать параметры GET или POST в модель поиска через контроллер. Как тебе удобней.
В контроллере
В модели поиска организованы условия, например:
Ну и сама модель поиска возвращает тебе dataProvider
Который приходит в тот же GridView или ListView, чтобы отобразить твои товары.
Ты это спрашивал?
Предположим это Product. Создается модель ProductSearch, которая расширяется (extends) основной моделью Products
Код: Выделить всё
class ProductSearch extends Product
В контроллере
Код: Выделить всё
$searchModel = new ProductsSearch;
$dataProvider = $searchModel->search(\Yii::$app->getRequest()->get());
Код: Выделить всё
$query->andFilterWhere([
'productsextra_id' => $this->productsextra_id,
]);
$query->andFilterWhere(['like', 'products_name', $this->products_name]);
if('' != $this->products_price_min){
$query->andFilterWhere(['>=', 'products_price', $this->products_price_min]);
}
if('' != $this->products_price_max){
$query->andFilterWhere(['<=', 'products_price', $this->products_price_max]);
}
Который приходит в тот же GridView или ListView, чтобы отобразить твои товары.
Ты это спрашивал?
- Tonni_regoletti
- Сообщения: 52
- Зарегистрирован: 2019.10.11, 09:16
Re: Реализация фильтров на Yii2
Да примерно про это спасибо.
- Tonni_regoletti
- Сообщения: 52
- Зарегистрирован: 2019.10.11, 09:16
Re: Реализация фильтров на Yii2
А нормально будет если не использовать dataProvider ?
А то он никак не ложится, так как мне нужно
А то он никак не ложится, так как мне нужно
Re: Реализация фильтров на Yii2
А через что ты выводишь данные в представлении?Tonni_regoletti писал(а): ↑2020.02.07, 16:54 А нормально будет если не использовать dataProvider ?
А то он никак не ложится, так как мне нужно
- Tonni_regoletti
- Сообщения: 52
- Зарегистрирован: 2019.10.11, 09:16
Re: Реализация фильтров на Yii2
Получил в контроллере и передела в вид )unknownby писал(а): ↑2020.02.07, 22:51А через что ты выводишь данные в представлении?Tonni_regoletti писал(а): ↑2020.02.07, 16:54 А нормально будет если не использовать dataProvider ?
А то он никак не ложится, так как мне нужно
Re: Реализация фильтров на Yii2
Так в чем вопрос то? Если сделал как я написал, то проблем не должно быть с отображением информации.
Суть сама в том, как и что ты хочешь делать с данными в представлении. Если интересует просто вывод информации, то можно найти данные в модели и передать их на представление, если нужны фильтры и дополнительные возможности как есть у ListView (например), тогда делаем через dataProvider.
Re: Реализация фильтров на Yii2
с помощью gii можете сгенерировать CRUD только надо еще указать путь Search Model Class и тогда у вас вся стандартная логика для фильтра создастся, как @unknownby описал выше.
- Tonni_regoletti
- Сообщения: 52
- Зарегистрирован: 2019.10.11, 09:16
Re: Реализация фильтров на Yii2
Спасибо за ответы.