2015-09-14 88 views
3

這是我的實際查詢 -yii2 +連接查詢的ActiveDataProvider

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

'狀態' 字段是在用戶表中。所以我想過濾數據,其中狀態!= 0但它失敗。

我想這一點 -

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

,可是沒有工作。請讓我怎麼可能?

回答

2

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

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

已經嘗試過。檢查2 – Nisarg

+1

我在'where'函數中添加數組。 – GAMITG

+0

我得到這個錯誤 - SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'user.status' 正在執行的SQL是:SELECT COUNT(*)FROM'user_profile' WHERE'user' .'在'with()''user'中使用'status' <> 0 – Nisarg