我在CakePHP应用程序中更新aros表时遇到问题。这是我得到的代码:
$aro = new Aro(); $targetAro = $aro->find('first', array('conditions' => array('foreign_key' => intval($user['User']['id'])))); $newParent = $aro->find('first', array('conditions' => array('alias' => $userUpdate->level))); $targetAro['Aro']['parent_id'] = $newParent['Aro']['id']; $aro->updateAll($targetAro);
我已经输入调试日志语句,以确保我从查找调用中获得正确的结果。但是当我在updateAll调用之后检查数据库时,数据不变。有什么想法可能会发生什么?
我也试过调用$ aro-> setParent,但我也无法使用它。
答案 0 :(得分:0)
我通过跟踪在蛋糕控制台中执行类似操作的代码找到了问题。我应该使用 $ aro-> saveAll($ targetAro),而不是使用$ aro-> updateAll($ targetAro)。
updateAll()用于保存对多个实体的更改。第一个参数应该是值数组。当您只想将更改保存到单个实体时,使用saveAll(),如上面的代码中所示。
虽然看起来应该是这样,但我在日志或脚本输出中的任何地方都找不到错误输出,因为我传递给updateAll()的参数不正确。