Yii HAS_MANY отношение в поиске

Я хотел бы создать форму поиска. Мои ценовые диапазоны:

public static function getPrice_list(){
$model = array(
0=>"0 - 250.000",
1=>"250.000 - 600.000",
2=>"600.000 - 1.000.000",
3=>"1.000.000 -",
4=>"Every",

);
return $model;
}

Отношение модели рекламы:

'price'=>array(self::HAS_MANY, 'UserAndApartmanPrice', 'user_and_apartman_id')

Каждое объявление имеет 4 цены:
1. Значение по умолчанию для продажи.
2. Выберите стоимость для продажи.
3., по умолчанию стоимость аренды.
4. Выбранная стоимость аренды.
3 и 4 имеют одинаковые value в базе данных. main = 10

Так что мне нужно что-то вроде:

$criteria = new CDbCriteria;
$criteria->with = array( 'apartman','price');
$criteria->together = true;
if($_POST['sell_price'] != 4){
if($_POST['sell_price'] == 0){
// this is the question
}
...
}

$model = UserAndApartman::model()->findAll($criteria);

Так что я хотел бы искать в HAS_MANY realation, where main != 10 AND valuta = 1 AND value between 2 price,

1

Решение

Надеюсь, я правильно понял вашу модель стола и схему таблицы.
Критерии должны выглядеть примерно так:

$criteria = new CDbCriteria;
$criteria->together = true;
$list = UserAndApartman::getPriceList(0);
$criteria->with = array(
'description' => array(
'condition' => 'main != :main AND valuta = :valuta AND value BETWEEN :value1 AND :value2',
'params'    => array(
':main' => 10,
':valuta' => 1,
':value1' => $list[0],
':value2' => $list[1],
)
)
);

Функция UserAndApartman :: getPriceList ():

public static function getPriceList( $id ) {
$list = array(
0 => array("0", "250.000"),
1 => array("250.000", "600.000"),
2 => array("600.000", "1.000.000"),
3 => array("1.000.000", '9999999999999'),
4 => array('0', '9999999999999'),
);

return $list[$id];
}

Не забудьте изменить 0 в $list = UserAndApartman::getPriceList(0); в идентификатор диапазона значений, который вы хотите получить.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]