These are chat archives for php-ua/yii

17th
Feb 2017
Andrey Kravchuk
@TaPTaK
Feb 17 2017 08:13
тут вообще есть кто живой?
Sergey
@zeyser
Feb 17 2017 18:56
@TaPTaK Я живой, но помочь мало чем могу!
indahouse-aleksandr
@indahouse-aleksandr
Feb 17 2017 19:03
@TaPTaK А чем нужно помочь ?
Andrey Kravchuk
@TaPTaK
Feb 17 2017 20:56
@indahouse-aleksandr целый день парю мозг, как можна отфильтровать записи, есть таблица с товарами, и с значениями характеристик, есть промежуточная, между ними связь many-to-many, никак не получается победить фильтрацию данных
public function getCharacteristicValues()
    {
        return $this->hasMany(CharacteristicValue::className(), ['id' => 'characteristic_value_id'])
            ->viaTable('{{%product_has_characteristic_values}}', ['product_id' => 'id']);
    }

у товара много характеристик, и нада как-то так построить запрос чтоб получилось что-то типа этого(оно у меня уже так):

SELECT `product`.* 
        FROM `product` 
        LEFT JOIN `product_has_characteristic_values` ON `product`.`id` = `product_has_characteristic_values`.`product_id` 
        LEFT JOIN `characteristic_value` ON `product_has_characteristic_values`.`characteristic_value_id` = `characteristic_value`.`id` 
        WHERE (`category_id`=10) 
          AND (`price` >= '124') 
          AND (`price` <= '6325') 
          AND ((`characteristic_value`.`id`='135') OR (`characteristic_value`.`id`='134')) 
          AND (`characteristic_value`.`id`='138') 
          AND (`characteristic_value`.`id`='142')

но только чтоб работало

походу одним запросом это реализовать не выйдет я так понимаю...