这一定是丑陋的东西显而易见,但我被困在这,并且无法解决它在过去的两个小时。在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