Рейтинг:0

How to get node id when update a page related to menu link

флаг gb

In my module I use the mymodulename_entity_update() function to listen when an entity is updated:

function mymodulename_entity_update($entity) {
    file_put_contents(__DIR__.'/test.txt', $entity->bundle());
}

When I update an article or a page which is not related to menu link, I receive 'node' as value of the ->bundle() property, as expected.

But if I update a page which is related to a menu link, I receive the 'menu_link_content' as the bundle value and all the data of the $entity object is the data of menu link. The same data I receive when update a menu link. And the only thing that helps me to detect whether a page was updated or menu link is the ->expanded->value property: in the case of a page it equals 0.

The second problem is, how to get ID of the node which is related to the menu link?

I was trying $entity->getRouteParameters()['node'] as recommended by the link https://drupal.stackexchange.com/a/281646/104765 but I receive the error

Call to undefined method Drupal\menu_link_content\Entity\MenuLinkContent::getRouteParameters()...

sonfd avatar
флаг in
Если вы сохраните узел со ссылкой на меню, он сохранит ссылку на меню (из формы в форме редактирования узла), а также сам узел. Непонятно, что вы пытаетесь сделать, но вы можете использовать [hook_ENTITY_TYPE_update()](https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api .php/function/hook_ENTITY_TYPE_update/9.2.x), например. `hook_node_update()`, чтобы воздействовать только на обновленный узел.

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

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