有没有办法在beforeSave模型的回调中访问发布的数据? (部分解决)

时间:2011-02-15 14:49:26

标签: php cakephp cakephp-1.3

事实是,我一直在努力改变密码。 我用过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可用,它不是那么漂亮,但我会用它......

我虽然这是一种很好的编码方式。这是真的吗?

2 个答案:

答案 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;
}