2013-07-16 25 views
1

我是Yii框架中的初學者。我有一種情況,我需要這樣做在Yii中使用updateAll方法更新字段值

我有一個列rgt在數據庫中,我想在某些條件下增加2。

我已經寫了這樣的

Category::model()->updateAll(array("rgt"=>"rgt+2"),array("condition"=>"rgt >".$this->myRight));

這是行不通的。我不確定我寫的是對的。請幫我提前

+1

「這不起作用」是一個非常模糊的聲明。它沒有告訴我們你遇到的問題。這很可能是rgt甚至不是你桌子上的一列。你需要告訴我們你的期望,以及發生了什麼。你有什麼錯誤條件?你有什麼試圖解決這個問題?這些嘗試(特別是)的結果是什麼? – jmarkmurphy

回答

2

感謝您無法通過DB這樣的表達式rgt+2updateAll()。它會嘗試將其設置爲列值並可能失敗,因爲該列的類型爲INT。但您可以使用updateCounters()代替:

Category::model()->updateCounters(array(
    'rgt' => 2, 
), 'rgt > '.$this->myRight);