事实是,我一直在努力改变密码。 我用过this approaching so far。我很喜欢它,看起来很简单,但是目前我想更改$ this->数据中发布的new_password的密码字段,在之前它只是发布了未发布的数据。
function beforeSave(){
if(isset($this->data['Usuario']['password_nueva'])){
$this->data['password'] = Security::hash($this->data['Usuario']['password_nueva'], null, true);
}
return $this->data;
}
看起来像cake使用$ this-> set()方法,它在调用此回调之前取消设置与模型无关的所有数据。有没有办法保持数据发布?
我注意到$ _Post可用,它不是那么漂亮,但我会用它......
我虽然这是一种很好的编码方式。这是真的吗?
答案 0 :(得分:0)
我现在无法查看,但请查看$this->params
。这就是我掌握AJAX的东西(我想)。
beforeSave
应该能够看到$this->data
- 请参阅http://book.cakephp.org/view/683/beforeSave
答案 1 :(得分:0)
我不确定为什么它不起作用。我检查了我的用户型号代码并且存在一些差异。我重写了你的代码:
function beforeSave(){
parent::beforeSave();
if(isset($this->data[$this->name]['password_nueva'])){
$this->data['password'] = Security::hash($this->data[$this->name]['password_nueva'], null, true);
}
return $this->data;
}