如何在Yii2中找到属性等于value或为null的ActiveRecords

use*_*416 4 php sql activerecord yii2

我基本上有一个活动查询,我想要过滤该列,如果它匹配ID或为null

MyTable::find()->andFilterWhere(['in', 'org_id', [null, $org_id]])->all();
Run Code Online (Sandbox Code Playgroud)

目前使用这个,工作正常$org_id,但它不会返回null值.我试过这个,看看我是否可以得到任何空结果,但无济于事

MyTable::find()->andFilterWhere(['in', 'org_id', null])->all();
Run Code Online (Sandbox Code Playgroud)

有小费吗?

aro*_*hev 5

纠正你这样的查询:

MyTable::find()
   ->andFilterWhere(['in', 'org_id', $this->org_id])
   ->orWhere(['org_id' => null])
   ->all();
Run Code Online (Sandbox Code Playgroud)

您也可以IS NULL使用数组指定条件,orWhere因为这个条件不依赖于属性值就足够了.