Есть ли способ получить доступ к опубликованным данным в обратном вызове модели beforeSave? (Частично решено) - PullRequest
0 голосов
/ 15 февраля 2011

Дело в том, что я пытался создать форму смены пароля.Я использовал это приближение до сих пор .Мне это очень понравилось, выглядит просто, но в данный момент я бы хотел изменить поле пароля для new_password, размещенного в $ this-> data, в beforeSave просто так получилось, что опубликованные данные не установлены.

Похоже, что торт использует метод $ this-> set (), который сбрасывает все данные, не относящиеся к модели, перед вызовом этого обратного вызова.Есть ли способ сохранить данные?

Я заметил, что $ _Post доступен, это не очень красиво, но я буду использовать это ...

Я подумал, что это хорошая практика для такого кодирования.Это правда?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2011

Я не уверен, почему это не работает. Я проверил свой код модели пользователя, и есть некоторые различия. Я переписал твой код:

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;
}
0 голосов
/ 15 февраля 2011

Я не могу проверить прямо сейчас, но посмотрите на $this->params.Вот как я понимаю вещи для AJAX (я думаю).

beforeSave должен видеть $this->data - см. http://book.cakephp.org/view/683/beforeSave

...