it-swarm.com.de

So erhalten Sie ein Knotenobjekt von der Knoten-ID

wie erhalte ich in einem benutzerdefinierten Modul drupal 8) ein Knotenobjekt, wenn ich die Knoten-ID habe? Ich habe versucht:

$node = new Node($nid);
$node->save();`

habe aber diesen Fehler bekommen:

Argument 1, das an Drupal\Core\Entity\ContentEntityBase :: __ construct () übergeben wurde, muss vom Typ Array sein, Zeichenfolge angegeben,

5
Diana

Es gibt einige Möglichkeiten.

Wenn Ihr Kontext Abhängigkeitsinjektion zulässt, injizieren Sie entity_type.manager Service und benutze es so:

$node = $this->entityTypeManager->getStorage('node')->load($nid);

Wenn nicht, können Sie immer noch das entity_type.manager Bedienung:

$node = \Drupal::entityTypeManager()->getStorage('node')->load($nid);

Wenn Sie möchten, können Sie die Klasse Node direkt verwenden:

$node = \Drupal\node\Entity\Node::load($nid);
10
Clive

Sie verwenden new niemals, um eine Entität zu erstellen, wenn Sie sie aus der Datenbank laden oder erstellen müssen, ohne sie aus der Datenbank zu laden.

Wenn Sie einen Knoten erstellen möchten, verwenden Sie Node::create() wie im folgenden Beispielcode.

  use Drupal\node\Entity\Node;

  $settings = [
    'body' => [
      [
        'value' => 'The node body is here.',
        'format' => filter_default_format(),
      ],
    ],
    'title' => 'The node title',
    'type' => 'page',
    'uid' => \Drupal::currentUser()->id(),
  ];
  $node = Node::create($settings); 

Wenn Sie einfach einen Knoten aus der Datenbank laden müssen, dessen Knoten-ID bekannt ist, ist der Code viel einfacher.

  use Drupal\node\Entity\Node;

  $node = Node::load($nid);

Wenn Sie dann einen Knoten aus der Datenbank laden müssen, der andere Eigenschaften kennt, jedoch nicht die Knoten-ID, können Sie den folgenden Code verwenden.

  use Drupal\node\Entity\Node;

  $nodes = \Drupal::entityTypeManager()->getStorage('node')->loadByProperties($values);

$nodes ist ein Array mit null oder mehr Knoten und $values ist ein Array, das die Ihnen bekannten Eigenschaften beschreibt.

4
kiamlaluno