Yii2 AR 查询数据,复杂点的where条件如何写呢?比如这个


SELECT * FROM `sdb_b2c_orders` WHERE 
    (pay_status='1' AND ship_status='0') 
 OR 
    (pay_status='0' AND payment='-1' AND ship_status='0')
    

Yii2的model 如果写出这样的过滤规则呢??
orWhere() andWhere()方法也无法在OR () 括号里面 像上面嵌套and

阅读 13k
3 个回答
$orders = Orders::find()->where([
    'AND',
    ['pay_status' => 1],
    ['ship_status' => 0]
])->orWhere([
    'AND',
    ['pay_status' => 0],
    ['payment' => 1],
    ['ship_status' => 0]
])->all();
$orders = Orders::find()->filterWhere([
    'pay_status' => 1,
    'ship_status' => 0
])->orFilterWhere([
    'pay_status' => 0,
    'payment' => 1,
    'ship_status' => 0
])->all();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进