Yii2 How to perform where AND or OR condition grouping?

后端 未结 8 2310
说谎
说谎 2020-12-08 02:02

I am new to Yii-2 framework. How can i achieve following query in Yii-2 framework using activeQuery and models.

SELECT * FROM users AS u WHERE u.user_id IN(1         


        
8条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-08 02:35

    where() function of ActiveQuery also accepts string as its first parameter that will be used in WHERE condition of the query. So easiest way would be to put those conditions in where()function.

    Assuming you are using ActiveRecord model, you can do something like following in your model.

    $this->find()
           ->where("user_id IN(1,5,8) AND (status = 1 OR verified = 1) OR (social_account = 1 AND enable_social = 1)")
           ->all();
    

    Of course you should use prepared statements instead of hardcoding values inside query, but above code is just to give you an idea.

    You can find more detail in documentation Here and Here

提交回复
热议问题