这一定是丑陋明显的事情,但我坚持这一点,过去两个小时都无法解决。
我有这段代码:
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()
获得wako且$pageId
相等它是所有循环迭代的最后一个值。
换句话说,如果我有20个菜单项,结果集中的最后一项有pageId
= 18
,那么当使用CDbCommand::update()
时,我得到 all < / em>菜单项设置为最后一个值。
这里必须有一些变量覆盖,但过去两个小时我找不到它,尤其是echo
只放一行就行了。有人可以帮忙吗。
答案 0 :(得分:2)
猜测,但$this->update()
期望一个数组的绑定参数?
$this->update
(
'menus_items',
array(
'link' => '/content/show?id='.$pageId,
'id' => $menuId
)
);