En Drupal 7, si quisiera obtener la identificación del nodo del nodo que se muestra actualmente (por ejemplo node/145
), podría obtenerlo con la arg()
función. En este caso, arg(1)
devolvería 145.
¿Cómo puedo lograr lo mismo en Drupal 8?
El parámetro habrá sido subido de nid a objeto de nodo completo para cuando tenga acceso a él, por lo tanto:
$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();
}
Vea el registro de cambios para más información.
/taxonomy/term/{tid}
?menu_get_object
?{}
de su ruta. Para términos de taxonomía, el parámetro de ruta se llamataxonomy_term
definición de ruta/taxonomy/term/{taxonomy_term}
. Aquí se puede conseguir de esta manera,\Drupal::routeMatch()->getParameter('taxonomy_term')
.Es correcto de usar
\Drupal::routeMatch()->getParameter('node')
. Si solo necesita la ID del nodo, puede usarla\Drupal::routeMatch()->getRawParameter('node')
.fuente
si está utilizando o creando un bloque personalizado, debe seguir este código para obtener la identificación del nodo de URL actual.
fuente
Tenga en cuenta que en la página de vista previa del nodo, lo siguiente no funciona:
Para la página de vista previa del nodo, debe cargar el nodo de esta manera:
¿Cómo cargar un objeto de nodo en la página de vista previa de nodo?
fuente