如何在SearchModel中为与或组合的布尔属性编程查询

时间:2018-07-08 12:28:17

标签: yii2

以下查询将选择数据库中所有记录,其中属性arbeitsumfang_vollzeit为true:

if ($this->DropDown_Arbeitszeit == 1) {
 $query = Bewerber::find()->where(['arbeitsumfang_vollzeit' => true]);
}

以下查询选择所有记录,其中属性arbeitsumfang_vollzeit或arbeitsumfang_terilzeit为真,但我失败了。

if ($this->DropDown_Arbeitszeit == 2) {
            $query = Bewerber::find()->andFilterWhere(['or',
                ['=', 'arbeitsumfang_vollzeit', $this->arbeitsumfang_vollzeit],
                ['=', 'arbeitsumfang_teilzeit', $this->arbeitsumfang_teilzeit]]);
}

如何正确编码查询?

2 个答案:

答案 0 :(得分:0)

我只是猜测您可能将$this->arbeitsumfang_vollzeit设置为null而不是false,这将导致无法按您的意愿过滤查询,

答案 1 :(得分:0)

根据您的描述,我猜您需要这样的东西:

if ($this->DropDown_Arbeitszeit == 2) {
    $query = Bewerber::find()->andWhere([
        'or',
        ['=', 'arbeitsumfang_vollzeit', 1],
        ['=', 'arbeitsumfang_teilzeit', 1],
    ]);
}