yii2 + 在 ActiveDataProvider 中加入查询

yii2 + join query in ActiveDataProvider

这是我的实际查询 -

$dataProvider = new ActiveDataProvider([
            'query' => UserProfile::find()->with(['user'])
        ]);

'status' 字段存在于用户 table 中。所以我想按 status != 0 过滤数据,但它失败了。

我试过了 -

1

$dataProvider = new ActiveDataProvider([
            'query' => UserProfile::find()->with(['user'])->where('user.status !=',0)
        ]);

2

$dataProvider = new ActiveDataProvider([
            'query' => UserProfile::find()->with(['user'])->where('<>','user.status',0)
        ]);

None 有效。请告诉我这怎么可能?

您需要使用此代码更改您的 $dataProvider 代码。

$dataProvider = new ActiveDataProvider([
            'query' => UserProfile::find()->joinWith(['user(relation_name)'])->where(['<>','user.status',0])
        ]);