Comment puis-je obtenir l'étiquette de type de nœud à partir d'un objet nœud?


12

J'essaie d'obtenir l'étiquette de bundle (étiquette de type de nœud) du nœud à partir d'un objet de nœud dans Drupal 8.

Cela fonctionne, mais semble de longue haleine:

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

Existe-t-il un autre moyen d'obtenir le label du bundle, possible de manière moins compliquée ?


6
$node->type->entity->label();est peut-être un peu plus gracieux? Je ne suis pas sûr qu'il existe actuellement une version plus courte
— Clive

2
Fonctionne également dans le modèle de brindille: {{node.type.entity.label}}
— oknate

Réponses:



8

Si vous avez besoin du nom de machine de type nœud dans le modèle Twig:

{{ node.getType }}

6

Si vous voulez l'étiquette en brindille

{{ node.type.entity.label }}

5

Essayez ce code.

use Drupal\node\Entity\NodeType;

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

2
Cela charge tous les types de nœuds juste pour obtenir le label d'un. un peu inefficace, mieux vaut simplement charger celui que vous voulez.
— Berdir

Se mettre d'accord! C'est juste basé sur le code de @No Sssweat.
— MrD

@Berdir thx pour l'avoir signalé. Je ne veux pas caméléon la question, donc je vais laisser cela comme la réponse acceptée. J'utilise plutôt le code dans ma propre réponse.
— Pas de Sssweat

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.