Come posso ottenere l'etichetta del tipo di nodo da un oggetto nodo?


12

Sto cercando di ottenere l'etichetta del bundle (etichetta del tipo di nodo) del nodo da un oggetto nodo in Drupal 8.

Funziona, ma sembra prolisso:

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

C'è un altro modo per ottenere l'etichetta del pacchetto, possibile in un modo meno complicato ?


6
$node->type->entity->label();è forse un po 'più grazioso? Non sono sicuro che al momento esista una versione più breve
Clive

2
Funziona anche nel modello di ramoscello: {{node.type.entity.label}}
oknate

Risposte:



8

Nel caso in cui sia necessario il tipo di nodo nome macchina nel modello Twig:

{{ node.getType }}

6

Se vuoi l'etichetta in un ramoscello

{{ node.type.entity.label }}

5

Prova questo codice.

use Drupal\node\Entity\NodeType;

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

2
Ciò carica tutti i tipi di nodo solo per ottenere l'etichetta di uno. un po 'inefficiente, meglio caricare solo quello desiderato.
Berdir,

Essere d'accordo! È solo basato sul codice di @No Sssweat.
MrD,

@Berdir thx per averlo sottolineato. Non voglio camaleonte la domanda, quindi la lascerò come risposta accettata. Invece sto usando il codice nella mia risposta.
No Sssweat,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.