Рейтинг:0

Сравнение «старых» значений в hook_user_update

флаг mw

У меня есть функция, которая работает на hook_ENTITY_TYPE_update для учетной записи пользователя, но я хочу иметь возможность сравнивать с предыдущими значениями, которые могли быть в учетной записи пользователя, например, посмотреть, изменил ли пользователь свой адрес электронной почты, и иметь возможность реагировать на это.

Я вижу, что если я запускаю отладку на $сущность значение, которое является частью функции, что в пределах ценности массив, это единственный способ получить предварительно отредактированные данные?

Рейтинг:1
флаг cn

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

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

$previous_email = $account->original->getEmail();

если ($previous_email !== $account->getEmail()) {
Andrew Morris avatar
флаг mw
Хорошая вещь, я не знаю, почему моя IDE постоянно предупреждала меня, что я не могу вызвать $account->original, поэтому я никогда не пытался ее запустить, но она даже говорит, что это то, как вы можете получить это отсюда — https://api.drupal. org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api.php/function/hook_entity_update/8.2.x

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.