W Drupal 7, gdybym chciał uzyskać identyfikator węzła aktualnie wyświetlanego węzła (np. node/145
), Mógłbym uzyskać go za pomocą arg()
funkcji. W takim przypadku arg(1)
zwróci 145.
Jak mogę to samo osiągnąć w Drupal 8?
Do czasu uzyskania dostępu do tego parametru parametr zostanie przekształcony z nid na pełny obiekt węzła, więc:
$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();
}
Zobacz rekord zmian, aby uzyskać więcej informacji.
/taxonomy/term/{tid}
?menu_get_object
?{}
na swojej trasie. Dla terminów taksonomicznych nazywany jest parametrtaxonomy_term
trasy, definicja trasy/taxonomy/term/{taxonomy_term}
. Tutaj można dostać to w ten sposób,\Drupal::routeMatch()->getParameter('taxonomy_term')
.Jest poprawny w użyciu
\Drupal::routeMatch()->getParameter('node')
. Jeśli potrzebujesz tylko identyfikatora węzła, możesz użyć\Drupal::routeMatch()->getRawParameter('node')
.źródło
jeśli używasz lub tworzysz blok niestandardowy, musisz postępować zgodnie z tym kodem, aby uzyskać bieżący identyfikator węzła URL.
źródło
Uwaga na stronie podglądu węzła następujące czynności nie działają:
W przypadku strony podglądu węzła należy załadować węzeł w ten sposób:
Jak załadować obiekt węzła na stronie podglądu węzła?
źródło