2017-02-17 39 views
0

我有一個小任務,但我不知道錯誤在我的行爲中。我使用的是Yii2 2.0.10和PostgreSQL,我需要更新一些ActiveRecord模型並更改模型中的狀態。我寫了這個代碼:我的行爲有哪些錯誤?

public function actionActivate() 
{ 
    $connection = \Yii::$app->db; 
    $ids= implode(',',\Yii::$app->request->post('ids')); 
    $whereCondition = " id in ({$ids})"; 

    $result = $connection->createCommand() 
          ->update('{{%user}}',['{{%user}}.status'=>USER::STATUS_ACTIVE],[$whereCondition]) 
          ->execute(); 
    echo $result; 
} 

但是當我嘗試執行查詢我有這樣的錯誤:

>Exception 'yii\base\InvalidParamException' with message 'Operator ' ID IN (1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245)' requires two operands.' 

我在做什麼錯?

回答

0

你可以這樣做很容易:

public function actionActivate() 
{ 
    echo \Yii::$app->db->createCommand()->update(
     '{{%user}}', 
     ['status' => USER::STATUS_ACTIVE], 
     ['id' => \Yii::$app->request->post('ids')] 
    )->execute(); 
} 
+0

謝謝你,它的作品 –

+0

標記爲已解決即可。 – Bizley