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.