Intereting Posts

Странная переменная переписывается в цикле 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 ), а CDbCommand::update() Yii получает wako и имеет $pageId равное последнему значению для всех итераций цикла.

Другими словами, если у меня есть 20 пунктов меню, а последний элемент в наборе результатов имеет pageId = 18 , то при использовании CDbCommand::update() я получаю все пункты меню, установленные на это последнее значение.

Здесь должна быть какая-то переменная перезапись, но я не могу найти ее в течение последних двух часов, особенно, что echo одной строке выше отлично работает. Может кто-то помочь здесь.