для записи >= (больше или равно) и <= (меньше или равно) в функции search надо исполнить код ниже. Брали 1-Но поле в связной таблице и ищем его максимум и минумум. И искали интервал цен по связной таблице. Закоментированный код и не закоментированый - взаимозаменяемые записи. Синтаксис Yii2 позволяет не писать много where.
1 2 3 4 5 |
// !empty($this->price_min)?$query->andWhere(' prices.base_price >="'.$this->price_min .'"'):''; // !empty($this->price_max)?$query->andWhere('prices.base_price <="'.$this->price_max.'"' ):''; $query->andFilterWhere(['>=', 'prices.base_price', $this->price_min]); $query->andFilterWhere(['<=', 'prices.base_price', $this->price_max]); |
Если поиск по 1-й таблице достаточно записать не prices.base_price а например price .
Предварительно надо записать в search такую вещь, если нам нужно объединить связные таблицы для поиска.
1 |
$query = Rooms::find()->joinWith('price'); |
Rooms — это модель в которой мы сейчас находимся.