Yii2 与findAll()不相等的条件

Yii2 与findAll()不相等的条件,yii2,yii2-advanced-app,yii2-model,Yii2,Yii2 Advanced App,Yii2 Model,我试图使用以下代码从表中提取记录 $userId = Yii::$app->user->id; $lists = PromoLists::findAll(['user_id' => $userId, 'list_type' => 'custom']); 它将输出如下所示的查询 select * from promo_lists where user_id ='$userId' and list_type='custom' 但是我在文档中找不到任何东西可以帮助我在以下条

我试图使用以下代码从表中提取记录

$userId = Yii::$app->user->id;
$lists = PromoLists::findAll(['user_id' => $userId, 'list_type' => 'custom']);
它将输出如下所示的查询

select * from promo_lists where user_id ='$userId' and list_type='custom'
但是我在文档中找不到任何东西可以帮助我在以下条件下实现它

select * from promo_lists where user_id ='$userId' and list_type='custom' and status!='deleted'
因为状态是一个
ENUM
字段,有4种不同的状态

'active','pending','rejected','deleted'
目前我使用了以下方法

PromoLists::findAll(['user_id' => $userId, 'list_type' => 'custom', 'status'=>['active','pending','rejected']]);
哪个输出以下查询

select * from promo_lists where user_id ='$userId' and list_type='custom' and status in ('active','pending','rejected')
它以某种方式实现了相同的功能,但每次在表列
status
中添加新的状态类型时,都需要编辑此查询

我知道我可以通过使用
PromoLists::find()->where()->和where()->all()来实现这一点


但是如何检查
=/
运算符在条件下使用
findAll()

运算符格式


在条件中使用运算符格式

就这样:

PromoLists::find()->where(['and',
    [
        'user_id' => $userId, 
        'list_type' => 'custom',
    ],
    ['<>', 'status', 'deleted'],
])->all();
PromoLists::find()->其中(['和',
[
'user_id'=>$userId,
'列表类型'=>'自定义',
],
['','状态','已删除'],
])->全部();
就像这样:

PromoLists::find()->where(['and',
    [
        'user_id' => $userId, 
        'list_type' => 'custom',
    ],
    ['<>', 'status', 'deleted'],
])->all();
PromoLists::find()->其中(['和',
[
'user_id'=>$userId,
'列表类型'=>'自定义',
],
['','状态','已删除'],
])->全部();

虽然此代码可以回答问题,但提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。虽然此代码可以回答问题,但提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。