Задать вопрос

Обновление пароля пользователя в Yii

Добрый вечер!
Подскажите, как сделать чтобы при обновлении записи пользователя пароль его не менялся т.к. там md5, и где лучше при регистрации/изменении пароля шифровать его в md5, я делаю это в beforeSave, но столкнулся с проблемой что при редактировании записи существующий хеш снова хеширутеся.

Спасибо.
  • Вопрос задан
  • 6521 просмотр
Подписаться 5 Оценить Комментировать
Решения вопроса 1
p4s8x
@p4s8x
В «чистом» yii, нету db-авторизации. Скорее всего вы используете либо какой-то skeleton(сборку), либо экстеншн.
Смотреть надо UserIdenity, WebUser, но в первую очередь код модели, типа user.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@balloon
public function beforeSave() {
  if ($this->isNewRecord)
     $this->password = md5($this->password);
  return parent::beforeSave();
}
Ответ написан
Комментировать
megahertz
@megahertz
full stack разработчик
Многолетяя практика с Yii показала, что помещать код меняющий данные в beforeSave можно только в случае крайней необхлдимости. В большинстве случаев лучше вынести код в отдельный метод и вызывать из контроллера — и проблем таких не возникает, и в коде потом разобраться легче. Также, если приходится пред сохранением/извлечением менять данные полей, то зачастую проще потратить время на создание формы, а не работать напрямую через модель.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы