如何在CakePHP中更改ARO父级

时间:2011-11-02 17:12:00

标签: cakephp acl

我在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,但我也无法使用它。

1 个答案:

答案 0 :(得分:0)

我通过跟踪在蛋糕控制台中执行类似操作的代码找到了问题。我应该使用 $ aro-> saveAll($ targetAro),而不是使用$ aro-> updateAll($ targetAro)。

updateAll()用于保存对多个实体的更改。第一个参数应该是值数组。当您只想将更改保存到单个实体时,使用saveAll(),如上面的代码中所示。

虽然看起来应该是这样,但我在日志或脚本输出中的任何地方都找不到错误输出,因为我传递给updateAll()的参数不正确。