如何在CakePHP中更改ARO父级

如何在CakePHP中更改ARO父级,cakephp,acl,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

我在更新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); $aro=新的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); 我加入了调试日志语句,以确保从find调用中获得正确的结果。但是,当我在updateAll调用后检查数据库时,数据是不变的。你知道会发生什么吗


我还尝试调用$aro->setParent,但我也无法让它工作。

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

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

尽管看起来应该这样做,但由于传递给updateAll()的参数不正确,我在日志或脚本输出中的任何地方都找不到错误输出