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.