¿Cómo obtengo la etiqueta de tipo de nodo de un objeto de nodo?


12

Estoy tratando de obtener la etiqueta del paquete (etiqueta de tipo de nodo) del nodo de un objeto de nodo en Drupal 8.

Esto funciona, pero parece largo aliento:

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

¿Hay otra forma de obtener la etiqueta del paquete, posible de una manera menos complicada ?


66
$node->type->entity->label();es un poco más elegante quizás? No estoy seguro de que hay una versión más corta actualmente
Clive

2
También funciona en la plantilla de ramita: {{node.type.entity.label}}
oknate

Respuestas:



8

En caso de que necesite el nombre de máquina del tipo de nodo en la plantilla Twig:

{{ node.getType }}

6

Si quieres la etiqueta en ramita

{{ node.type.entity.label }}

5

Prueba este código.

use Drupal\node\Entity\NodeType;

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

2
Eso carga todos los tipos de nodos solo para obtener la etiqueta de uno. un poco ineficiente, mejor simplemente cargar el que quieras.
Berdir

¡De acuerdo! Es solo base en el código de @No Sssweat.
MrD

@ Berdir gracias por señalar eso. No quiero camaleón la pregunta, así que dejaré esto como la respuesta aceptada. En su lugar, estoy usando el código en mi propia respuesta.
No Sssweat

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.