Yii2-有效记录 - 条件

时间:2015-09-29 16:08:09

标签: php yii2

我需要编写如下所示的查询:

(WHERE metrics = kg&& quantity< xx)|| (WHERE metrics = lbs&& quantity<(xx * 2.2046))

这可能与Yii Active Record有关,如果可以吗?

1 个答案:

答案 0 :(得分:7)

根据您使用query builder的方式,有很多选项。以下是一些:

1)您可以将条件作为字符串插入:

UINavigationBar

2)或者按Product::find()->where("(metrics = 'kg' AND quantity < :quantity) OR (metrics = 'lbs' AND quantity < :quantity_lbs))", [":quantity" => $quantity, ":quantity_lbs" => $quantity * 2.2] )->all();

分割条件
OR

3)或使用operators

Product::find()->where("(metrics = 'kg' AND quantity < :quantity)") 
               ->orWhere("(metrics = 'lbs' AND quantity < :quantity_lbs)")
               ->addParams([":quantity" => $quantity, ":quantity_lbs" => $quantity * 2.2])
               ->all();

我选择第二个选项。它是最易读的,也更容易维护。