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

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();

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().

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.