CakePHP не хеширует пароль в модели - PullRequest
0 голосов
/ 27 января 2012

В cakephp 2 у меня есть форма, которая создает новую запись в таблице компаний и пользователей.

Моя проблема в том, что он сохраняется в обеих таблицах, но в таблице Umuser он не хэширует пароли или ключ идентификатора. Кажется, что это вообще не называется моделью Umuser. Сохранение перед сохранением и это не называется.

public function beforeSave() {
    if (isset($this->data[$this->alias]['password'])) {
        $this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
    }
    return true;
}

Umuser находится в каталоге puging / Usermin / Models.

Контроллер компании для сохранения данных:

public function add() {
    if ($this->request->is('post')) {
        $this->Company->create();

        if ($this->Company->saveAll($this->request->data, array('validate'=>'first'))) {  // Should ensure both sets of model data get validated
            $this->Session->setFlash(__('The company has been saved'));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The company could not be saved. Please, try again.'));
        }
    }
}

Не могу понять, почему он сохраняет данные, но обходит модель Umuser, чтобы сделать это.

1 Ответ

1 голос
/ 27 января 2012

$ this-> data [$ this-> alias] ['password']) Возможно, здесь что-то не так.Попробуйте сделать что-то вроде этого:

public function beforeSave() {
if (isset($this->data[$this->alias]['password'])) {
    $this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
    return true;
}else{
    return false; // if $this->data[$this->alias]['password'] is not set, don't save the model
}

}

и напишите здесь, если компания была сохранена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...