Решается просто:
Код: Выделить всё
$query = Product::find();
$query->andWhere('price >= :min_price', [':min_price' => 10000]);
$query->andWhere('price <= :max_price', [':max_price' => 99999]);
$provider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 12]]);
У разных пользователей на каждый товар могут быть разные скидки %.
Для каждого Product есть hasMany модель ProductUserDiscount (product_id, user_id, discount (0-100)).
В общем при фильтрации по цене (код выше) нужно как-то подгружать ProductUserDiscount для текущего пользователя и, для тех товаров где запись есть,
использовать product.price - product.price * productuserdiscount.discount / 100, в противном случае просто price.
Вопрос: это вообще решается как-то с помощью ActiveRecord или запросов?