В реализации крюк_узел_вставка ()
, у меня есть следующие три строки кода:
dpm($entity, 'объект');
$title = $entity->getTitle();
дпм($заголовок, 'заголовок');
С самого начала дпм()
Я получил:
сущность =>
Drupal\узел\сущность\узел {# 1632 ★ ¼
+in_preview: ноль
#значения:массив:27 [❗¼
...
"название" => массив: 1 [◄¼
"x-default" => массив: 1 [○¼
0 => массив: 1 [≥
"значение" => "Ожидаемый заголовок"
]
]
...
т.е. поле заголовка, выводимое дампером переменных, — это поле заголовка, которое я ожидал увидеть.
Второй дпм()
производит:
название =>
«Предыдущее название»
т.е. когда я извлекаю заголовок из объекта, используя получитьзаголовок()
метод, я получаю разные стоимость. Значение получено от объекта (узла), который я загружаю в контроллер связи операций (переопределение База Контроллеров
), но он не сохраняется внутри контроллера и не должен срабатывать крюк_узел_вставка ()
.
Я создаю и сохраняю новый узел в контроллере, используя этот код:
$node = \Drupal::entityTypeManager()->getStorage('узел')->create([
'тип' => 'мой_тип',
'тело' => 'тело',
]);
$node->setTitle('Ожидаемый заголовок');
$узел->сохранить();
Я предполагаю, что это $узел->сохранить();
который стреляет крюк_узел_вставка
.
Что здесь происходит?
Почему в хуке появляется фальшивый заголовок и как мне получить ожидаемый результат?
Для записи: я не меняю узел в крюк_узел_вставка
. Я удаляю его, если заголовок соответствует определенным критериям. Я не могу использовать ограничение для предотвращения его создания по причинам, не связанным с этим вопросом.