it-swarm.com.de

Wie lege ich das Textformat eines Feldes in einem Knotenobjekt fest?

Wenn ich einen Knoten wie diesen erstelle:

$nodeSetup = [
  'nid' => NULL,
  'type' => $bundle,
  'uid' => $uid,
  'revision' => 0,
  'status' => 1,
  'body' => ['format' => 'full_html', 'value' => Xss::filter($body)],
];
$_node = Node::create($nodeSetup);

der Körperwert und das Format funktionieren einwandfrei. Wie kann ich beim Laden eines vorhandenen Knotens den Body-Wert unter Beibehaltung des Formats festlegen? Das hat nicht funktioniert:

$_node->body->format = 'full_html';
$_node->body->set('format', 'full_html');
$_node->save();
2
Alex

Folgendes hat für mich funktioniert,

$node = \Drupal::entityTypeManager()->getStorage('node')->load($nid);
$node->body->value = 'body';
$node->body->format = 'full_html';//omitting this will retain existing format
$node->save();
5
Kstack

Die Lösung von Kstack funktioniert. Eine andere Möglichkeit besteht darin, den Wert und das Format zusammen in einem Array wie folgt anzugeben:

$node = \Drupal::entityTypeManager()->getStorage('node')->load(1);
$node->body->setValue(['value' => 'body', 'format' => 'full_html']);
$node->save();
2
Barrett