這一定是醜陋的東西顯而易見,但我被困在這,並且無法解決它在過去的兩個小時。在foreach循環中奇怪的變量覆蓋
我有這樣一段代碼:
foreach($idMap as $menuId=>$pageId)
{
echo('$this->update("menus_items", SET "link = /content/show?id='.$pageId.'" WHERE id = '.$menuId.');'."\n");
$this->update
(
'menus_items',
array('link'=>'/content/show?id='.$pageId),
array('id = '.$menuId)
);
}
echo
部分工作正常($pageId
是對每個項目,從$idMap
採取不同),而Yii中的CDbCommand::update()
得到光,並有$pageId
等於它是最後一個值所有循環迭代。
換句話說,如果我有20個菜單項,並在結果集中最後一個項目有pageId
= 18
,然後使用CDbCommand::update()
的時候,我得到設置爲最後一個值都菜單項。
這裏肯定有一些變量覆蓋,但是我在過去的兩個小時裏找不到它,特別是,echo
只在一行以上顯示了很好的效果。有人可以幫助這裏。
我們看不到'$ this-> update'的作用。我看不到任何覆蓋。該錯誤必須在其他地方。 – steven 2015-03-13 16:41:06
'$ this'是什麼?的CActiveRecord? – hamed 2015-03-13 16:51:35
@steven感謝您嘗試提供幫助。看來,這個問題必定與Yii有關。我會在他們的論壇上提問。如果我在那裏得到一些有價值的答案,我會考慮在這裏重新發布它們。感謝雙重檢查並向我保證,我不會錯過某些愚蠢的東西。 – trejder 2015-03-13 19:20:40