我用它的视图和控制器中的所有东西完成了一个简单的“change_email”功能。除了保存数据外,一切实际上都运行良好。当我提交表单并且我的模型实际运行它的 save() 方法时,CakePHP 会抛出一个错误:
AclNode::node() - 找不到由“Array ([Aro0.model] => User [Aro0.foreign_key] => 11)”标识的 Aro 节点
当然他没有找到节点,因为它还没有创建(当用户注册他的帐户时,不会自动创建节点)。我很好奇为什么我的模型想要找到节点,因为实际操作不需要它。
public function change_email()
{
if ($this->request->is("put")) {
if (!empty($this->request->data)) {
$this->User->validator()
->add('password', array(
'valid' => array(
'rule' => 'validatePassword'
)
))
->add('email_confirm', array(
'valid' => array(
'rule' => 'validateEmail'
)
));
if ($this->User->save($this->request->data)) {
$this->set("status", true);
}
}
}
}
那是我在控制器中的代码。除了只对密码进行哈希处理的 beforeFilter() 方法外,该模型没有任何实际效果。
有人有想法吗?