it-swarm.com.de

Bevorzugte Methode zum Laden einer bestimmten Entitätsrevision

In drupal 7) können Sie dies tun, um eine Entitätsrevision mit zu laden

entity_load ($ entity_type, $ ids = FALSE, $ condition = array (), $ reset = FALSE)

so was:

$old_revision = entity_load('node', array(), array('vid' => 123));

Jetzt werden die $ -Bedingungen jedoch nicht mehr unterstützt. Ziemlich überall sehen Sie Leute, die sagen, dass Sie EntityFieldQuery anstelle von Bedingungen verwenden sollten, aber das hilft in diesem Fall nicht. Sie können age () verwenden, um Revisionen mit EntityFieldQuery abzufragen. Es werden jedoch keine vollständig geladenen Knotenergebnisse angezeigt, sodass Sie die Entität weiterhin laden müssen und wie Sie diese Revision dieser Entität ohne die laden Bedingungen.

6
rooby

Derzeit wird bevorzugt die Speicherinstanz ( EntityStorageInterface ) für den Entitätstyp aus dem EntityTypeManager abgerufen und anschließend die Funktion loadRevision () verwendet. Sie können dies beispielsweise für einen Knoten tun:

$node_revision = \Drupal::entityTypeManager()
  ->getStorage('node')
  ->loadRevision($node_revision_id);

Zuvor haben Sie die Speicherinstanz vom EntityManager wie folgt abgerufen:

$node_revision = \Drupal::entityManager()
  ->getStorage('node')
  ->loadRevision($node_revision_id);

Dies funktioniert derzeit noch, wurde jedoch zugunsten der ersten Methode veraltet. Der diesbezügliche Änderungsdatensatz befindet sich unter https://www.drupal.org/node/2549139

Der alte Weg, der derzeit noch in Drupal 8, aber auch veraltet) funktioniert, ist die Funktion entity_revision_load () , die auch in drupal 7 über entity_revision_load () im Modul Entity API .

Diese Funktion ersetzt die Verwendung von Bedingungen zum Laden alter Entitätsrevisionen. Sie können den Verlauf dieser Änderung im Drupal Kernproblem zu Entfernen der Unterstützung für veraltete $ Bedingungen vom Entity Controller sehen.

Die Art und Weise, wie Sie diese Funktion gemäß der ursprünglichen Frage verwenden würden, ist:

$old_revision = entity_revision_load('node', 123);
16
rooby