Como obtenho o rótulo do tipo de nó de um objeto de nó?


12

Estou tentando obter o rótulo do pacote (rótulo do tipo de nó) do nó a partir de um objeto de nó no Drupal 8.

Isso funciona, mas parece exagerado:

$node_type = \Drupal::entityManager()->getStorage('node_type')->load($node->getType())->get('name');

Existe outra maneira de obter o rótulo do pacote, possível de uma maneira menos complicada ?


6
$node->type->entity->label();é um pouco mais elegante, talvez? Não tenho certeza se há uma versão mais curta atualmente.
Clive

2
Também funciona no modelo de galho: {{node.type.entity.label}}
oknate 17/05/16

Respostas:



8

Caso você precise do nome da máquina do tipo de nó no modelo Twig:

{{ node.getType }}

6

Se você quiser o rótulo em galho

{{ node.type.entity.label }}

5

Experimente este código.

use Drupal\node\Entity\NodeType;

$types = NodeType::loadMultiple();
$bundle = $node->bundle(); 
$type_name = $types[$bundle]->label();

2
Isso carrega todos os tipos de nós apenas para obter o rótulo de um. um pouco ineficiente, melhor apenas carregar o que você deseja.
Berdir 13/05/19

Aceita! É apenas baseado no código do @No Sssweat.
MrD 13/05/19

@Berdir thx por apontar isso. Eu não quero chamar a pergunta de camaleão, então deixarei isso como a resposta aceita. Estou usando o código na minha própria resposta.
No Sssweat

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.