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])
]);
这是我的实际查询 -
$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])
]);