Ответы пользователя по тегу Yii
  • Почему не работает метод save()?

    Demisang
    @Demisang
    Backend PHP-developer
    1. Нельзя писать
    $this->password = Yii::$app->getSecurity()->generatePasswordHash($this->password);


    В методе after/beforeSave(), потому что первый раз предположим $password будет нормальным, а потом вытащив юзера из базы его password уже будет хешем, и сохранив юзера повторно - уже сгенерируется новый хеш пароля из старого хеша пароля, и так далее, короче после второго сохранения пароль пользователя будет совершенно непригодным.

    2. Нельзя использовать $user->update() в конструкции if, потому что $user->update() возвращает не true/false, а количество изменённых строк в БД, но в Yii если модель не изменилась - ничего и не будет обновлено в базе(зачем лишний запрос), просто пишите $user->save()
    Ответ написан
    Комментировать