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?


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:



8

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

{{ node.getType }}

6

Wenn Sie das Etikett im Zweig haben möchten

{{ node.type.entity.label }}

5

Versuchen Sie diesen Code.

use Drupal\node\Entity\NodeType;

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

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.