Динамическое обновление одного поля в модели - PullRequest
1 голос
/ 06 апреля 2020

Я использую adonis js, и проблема с моим методом обновления:

async update(id, data) {
  const user = await User.find(id);
  user.merge(data);
  return await user.save();
}

По какой-то причине метод слияния не изменяет предоставленные поля (данные являются объектом с поля, которые я хочу обновить, и их новые значения), но обновляет все ... включая хешированный пароль пользователя, что является для меня большой проблемой. Я не хочу делать такие вещи, просто обновите предоставленные поля. Есть ли способ исправить это?


Я остановил приложение, снова его обслужил и создал новую базу данных fre sh, чтобы быть уверенным. Он постоянно обновляет поля, которые не должны редактироваться. Позже, если пользователь пытается войти в систему, он получает следующее сообщение об ошибке (очевидно):

{
    "message": "auth/login/error",
    "error": "E_PASSWORD_MISMATCH: Cannot verify user password"
}

Изображения, отображающие обновляемый пароль пользователя:

Перед обновлением: Before being updated

После обновления: After being updated

1 Ответ

1 голос
/ 06 апреля 2020

Что случилось?

Таким образом, вы можете просто обновить значения вместо замены, например:

  user.name = "foo"

в конце

  await user.save()
...