我有一个用户模型,一个UsersController和一个帐户控制器使用用户模型(在创建帐户,登录,注销时使用帐户控制器)。
除了AccountController中的beforeSave函数外,一切正常。我正在尝试使用beforeSave来哈希我的密码,但它不起作用(密码在数据库中保存为un-hashed)。
public function beforeSave() {
parent::beforeSave();
if (isset($this->request->data['User']['password'])) {
$this->request->data['User']['password'] = sha1($this->request->data['User']['password']);
}
return true;
}
一些注意事项:
return false;
仍然执行保存功能(我认为不应该这样)debug($this->request->data)
不给我什么我认为在我的情况下 beforeSave 没有被调用,我只是想不通原因。
解决: beforeSave函数必须进入模型内部,这是我现在的beforeSave函数:
public function beforeSave($options = array()) {
parent::beforeSave();
$this->data['User']['password'] = sha1($this->data['User']['password']);
return true;
}