есть связь, которая выглядит вот так:
Код: Выделить всё
public function getControls()
{
return $this->hasOne(SaleFiltersOnControl::className(), ['id_similar' => 'id_similar'])
->onCondition(['controls.id_salefilter' => Yii::$app->params['id_salefilter']]);
}
Код: Выделить всё
Yii::$app->params['id_salefilter'] = $this->salefilter->id;
if ($this->salefilter->id) $this->joinWith(['controls as controls']);
Код: Выделить всё
$this->andWhere(['<', 's.price', 'controls.price']);
Если такая запись не существует то условие проходим автоматом,
а если есть то сверяет, если цена меньше ( ['<', 's.price', 'controls.price']) , то проходим условие
если больше то нет.
вот собственно и вся задумка