Wie bekomme ich einen Begriff aus einer Nachricht? [geschlossen]

9

Laut einem anderen Beitrag sollte ich das tun, $term = \Drupal::entityTypeManager()->getStorage('taxonomy')->load($tid); aber dann bekomme ich diesen Fehler:

Notice: Undefined property: Drupal\Core\Entity\Plugin\DataType\EntityReference::$target
Diana
quelle

Antworten:

29

Oder Sie können einfach die Entity Term-Klasse verwenden:

use Drupal\taxonomy\Entity\Term;

und in Ihrem Code:

$term = Term::load($tid);
$name = $term->getName();
Drupal de Comptoir
quelle
Dieser hat für mich gearbeitet.
Diana
3
Mein erster Instinkt beim Betrachten war "Oh nein, was ist mit der Abhängigkeitsinjektion, mit der sie uns in Drupal-Land-Tagen immer wieder über den Kopf schlagen?", Aber - bei der Inspektion - die statische :: load ($ id) -Methode, die von geteilt wird In allen Arten von Entitäten ist die erforderliche Unterstützung für die Abhängigkeitsinjektion integriert. Dies ist nun meine Wahl, wie eine Entität jeglicher Art (Knoten, Kommentar usw.) geladen werden soll. Tatsächlich ist mir klar, warum irgendjemand jetzt die Long-Hand-Methode \ Drupal :: entityTypeManager () -> blah-> blah-> blah verwenden würde! (Vielleicht mischt sich jemand anderes ein und gibt einen guten Grund dafür an?)
Daniel Scott
11

Es sollte sein:

$term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($tid);

taxonomy_termvs taxonomy.

Dann $term->getName().

Kevin
quelle