В Drupal 7, если бы я хотел получить идентификатор узла отображаемого в данный момент узла (например node/145
), я мог бы получить его с помощью arg()
функции. В этом случае arg(1)
вернется 145.
Как я могу добиться того же в Drupal 8?
Параметр будет преобразован из nid в полный объект узла к тому времени, когда вы получите к нему доступ, поэтому:
$node = \Drupal::routeMatch()->getParameter('node');
if ($node instanceof \Drupal\node\NodeInterface) {
// You can get nid and anything else you need from the node object.
$nid = $node->id();
}
Смотрите запись изменений для получения дополнительной информации.
/taxonomy/term/{tid}
?menu_get_object
?{}
своего маршрута. Для терминов таксономии называется параметр маршрутаtaxonomy_term
, определение маршрута/taxonomy/term/{taxonomy_term}
. Здесь вы можете получить это так\Drupal::routeMatch()->getParameter('taxonomy_term')
.Это правильно использовать
\Drupal::routeMatch()->getParameter('node')
. Если вам просто нужен идентификатор узла, вы можете использовать\Drupal::routeMatch()->getRawParameter('node')
.источник
Если вы используете или создаете пользовательский блок, вам нужно следовать этому коду, чтобы получить текущий идентификатор узла URL.
источник
Обратите внимание, что на странице предварительного просмотра узла не работает следующее:
Для страницы предварительного просмотра узла вы должны загрузить узел следующим образом:
Как загрузить объект узла на странице предварительного просмотра узла?
источник