Ich verwende Daten von JSON, um neue Knoten zu erstellen oder Felder auf vorhandenen zu aktualisieren, wenn Knoten auf meiner Drupal 8-Website vorhanden sind. Wenn ich also eine Methode zum Aktualisieren von Knoten verwende, muss ich die Array-Knoten-ID aktualisierter Knoten und Schlüssel von Feldern mit geänderten Werten in diesem Knoten speichern.
Nach Abschluss der Aktualisierung muss ich eine Tabelle mit allen Knoten dieses Inhaltstyps drucken, wobei die Felder der aktualisierten Knoten einen anderen Stil haben müssen (Farbe, Hintergrund usw.).
Also, wenn mein alter Knoten
body = "body1"
und description = "description 1"
und neuer Knoten haben body = "body2"
und description = "description 1"
nachdem das Update abgeschlossen ist, muss ich Ausgabe wie folgt erhalten:
Hier ist ein Beispiel:
$node = \Drupal\node\Entity\Node::load($nid);
$node->set("body", 'New body text');
$node->set("description", 'New value');
$node->save();
Irgendein Vorschlag?
Hinweis : Wenn ich verwende, $node->save();
wenn alle aktualisierten Werte gleich sind, wird nichts geändert (das Datum des Knotens im Inhalt des Admin-Panels ist das gleiche wie vor der Aktualisierung). Wenn die Werte jedoch unterschiedlich sind, muss ich nur die Knoten-ID, Schlüssel und Werte der geänderten Felder in speichern Array.
Antworten:
Um den Status festzulegen, können Sie die Methode setPublished () verwenden:
In Ihrem Fall:
quelle
changed
Eigenschaft zu überprüfen , den Zeitpunkt, zu dem er zuletzt geändert wurde.true
/false
an ab 8.3.x veraltet$node->setPublished()
ist . Verwenden Sie stattdessen zum Veröffentlichen und zum Aufheben der Veröffentlichung .$node->setPublished()
$node->setUnpublished()
Speichern Sie eine neue Revision des aktualisierten Knotens? Vielleicht können Sie das Diff-Modul verwenden, um die Änderungen zwischen dem aktuellen und dem vorherigen Knoten anzuzeigen? Dies ist keine gründliche Lösung, könnte aber möglicherweise ein nützlicher Hinweis für Sie sein.
quelle
Vergessen Sie nicht den Knoten-> save (), sonst werden Ihre Knotenänderungen ignoriert.
quelle