簡體   English   中英

Yii HAS_MANY搜索關系

[英]Yii HAS_MANY relation in search

我想創建一個搜索表單。 我的價格范圍是:

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_MANYwhere main != 10 AND valuta = 1 AND value between 2 price

希望我對您的表模型和表模式有所了解。 條件應該看起來像這樣:

$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];
}

不要忘記在$list = UserAndApartman::getPriceList(0);更改0 $list = UserAndApartman::getPriceList(0); 到您要檢索的值范圍的ID中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM