Всем привет! Столкнулась с проблемой - не срабатывает функция hook_entity_insert
Для теста просто пытаюсь написать функцию, чтобы при создании любой новой сущности приходило письмо на почту или создавался новый материал определенного типа. Но функция просто игнорируется
С почтой всё хорошо, если что. Например с hook_entity_presave всё отлично срабатывает. Что я делаю не так?
Примеры:
function mymod_entity_insert(Drupal\Core\Entity\EntityInterface $entity) {
if ($entity->getEntityTypeId() == 'node' && $entity->getType() == 'page') {
$node = \Drupal\node\Entity\Node::create([
'type' => 'article',
'title' => 'New page created',
]);
$node->save();
mail('mymail@mail.ru', 'ggg', 'new entity');
}
}
или так
function mymod_entity_insert(Drupal\Core\Entity\EntityInterface $entity) {
mail('mymail@mail.ru', 'test', 'new entity');
}
Если заменяю insert на presave, обе функции срабатывают
Комментарии
Кеш чистили после добавления хуков в код?
Спасибо! Блин, действительно, теперь работает.
Тоже первая мысль была о кэше, но как же тогда presave работал?
Скорее всего, presave был изначально в модуле, с него, возможно, как бы начали всё писать. Код модуля при первой отработке этого хука попал в кеш. Дальнейшие добавления новых хуков не давали эффекта кроме presave - до очистки кеша. Думаю, как-то так было.
да, тоже была первая мысль, почему у меня тогда в presave всё работало. И да, модуль начинался с него.