Как я могу проверить, действительно ли значение поля было изменено?

Есть ли крючок, который можно использовать для выполнения кода при обновлении определенного поля настраиваемого типа контента? Есть ли определенный крючок, или я должен использовать hook_node_presave()? В этом случае, как я могу проверить, действительно ли значение поля было изменено?

7 голосов | спросил Pantelis Natsiavas 14 Jpm1000000pmSat, 14 Jan 2017 20:56:07 +030017 2017, 20:56:07

1 ответ


8

Использование hook_entity_presave() :

  

Вы можете получить исходный объект сущности из $ entity-> оригинала, когда это обновление объекта.

Так что-то вроде этого должно работать:

function foo_node_presave(\Drupal\node\NodeInterface $node) {
  if (!$node->isNew() && $node->get('field_bar')->getValue() != $node->original->get('field_bar')->getValue()) {
    // ...
  }
}
ответил Clive 14 Jpm1000000pmSat, 14 Jan 2017 21:58:59 +030017 2017, 21:58:59

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132