No Drupal 7, se eu quisesse obter o ID do nó atualmente exibido (por exemplo node/145
), poderia obtê-lo com a arg()
função Nesse caso, arg(1)
retornaria 145.
Como posso conseguir o mesmo no Drupal 8?
O parâmetro terá sido convertido de nid para objeto de nó completo quando você tiver acesso a ele, portanto:
$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();
}
Veja o registro de alterações para mais informações.
/taxonomy/term/{tid}
?menu_get_object
?{}
da sua rota. Para termos de taxonomia, o paramater de rota é chamadotaxonomy_term
, definição de rota/taxonomy/term/{taxonomy_term}
. Aqui você pode obtê-lo assim\Drupal::routeMatch()->getParameter('taxonomy_term')
,.É correto usar
\Drupal::routeMatch()->getParameter('node')
. Se você apenas precisar do ID do nó, poderá usar\Drupal::routeMatch()->getRawParameter('node')
.fonte
se você estiver usando ou criando um bloco personalizado, precisará seguir este código para obter o ID do nó da URL atual.
fonte
Nota na página de visualização do nó, o seguinte não funciona:
Para a página de visualização do nó, você deve carregar o nó desta maneira:
Como carregar o objeto nó na página de visualização do nó?
fonte