Wie erhalte ich die Knotentypbezeichnung von einem Knotenobjekt?

12

Ich versuche, die Bundle-Bezeichnung (Knotentyp-Bezeichnung) des Knotens von einem Knotenobjekt in Drupal 8 abzurufen.

Das funktioniert, scheint aber langatmig:

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

Gibt es eine andere Möglichkeit, das Bundle-Label zu erhalten, die auf weniger komplizierte Weise möglich ist?

oknate
quelle
6
$node->type->entity->label();ist vielleicht ein bisschen anmutiger? Ich bin nicht sicher, ob es derzeit eine kürzere Version gibt
Clive
2
Funktioniert auch in der Zweigvorlage: {{node.type.entity.label}}
oknate

Antworten:

13

Der folgende Code funktioniert, wie aus @Clive hervorgeht .

$type_name = $node->type->entity->label();
Kein Sssweat
quelle
Funktioniert bei mir. Vielen Dank
Hassan Farooq
8

Falls Sie den Maschinentyp des Knotentyps in der Twig-Vorlage benötigen:

{{ node.getType }}
Alberto Galvis
quelle
6

Wenn Sie das Etikett im Zweig haben möchten

{{ node.type.entity.label }}
GiorgosK
quelle
5

Versuchen Sie diesen Code.

use Drupal\node\Entity\NodeType;

$types = NodeType::loadMultiple();
$bundle = $node->bundle(); 
$type_name = $types[$bundle]->label();
MrD
quelle
2
Das lädt alle Knotentypen, nur um die Bezeichnung eines zu erhalten. ein bisschen ineffizient, besser nur die gewünschte zu laden.
Berdir
Zustimmen! Es basiert nur auf dem Code von @No Sssweat.
MrD
@Berdir danke für den Hinweis. Ich möchte die Frage nicht chamäleonieren, daher werde ich dies als akzeptierte Antwort belassen. Ich verwende den Code stattdessen in meiner eigenen Antwort.
Kein Sssweat
2

Dafür gibt es eine Funktion

node_get_type_label($node);
Emil Stoianov
quelle