2016-07-26 4 views
1

重複する質問としてマークする前に、お読みください。私はここで別の問題があります。私はyii2検索モデルを使用してこの種類のクエリを生成したいと思います。yii2のAndWhereでネストされた条件を使用する方法

select * from t1 innerjoin t2 on (t1.id = t2.id) where ((t1.price >= '1000' and t1.price <= '5000') OR 
        (t2.price >= '1000' and t2.price <= '5000')) 

ここでの接合は問題ありません。主な問題はwhere句です。私はこれを試しましたが、動作しません。

$query->andFilterWhere([ 
        'and', 
        ['>=', 't1.price', $this>start_price], 
        ['<=', 't1.price', $this->end_price] 
       ]) 
     ->orFilterWhere([ 
         'and', 
         ['>=', 't2.price', $this->start_price], 
         ['<=', 't2.price', $this->end_price] 
       ]); 

答えて

2

:-) ..

$query->andFilterWhere([ 
    'or', 
    [ 
     'and', 
     ['>=', 't1.price', $this>start_price], 
     ['<=', 't1.price', $this->end_price] 
    ], 
    [ 
     'and', 
     ['>=', 't2.price', $this->start_price], 
     ['<=', 't2.price', $this->end_price] 
    ] 
]); 
+0

おかげでバディをお試しください –

関連する問題