web-dev-qa-db-fra.com

Obtenir le NID du nœud nouvellement créé à partir de entity_metadata_wrapper

J'ai besoin de tirer le nid immédiatement après sa création en utilisant entity_metadata_wrapper comme méthode de création.

Voici un bref exemple:

$values = array(
  'type' => 'content_type',
  'uid' => $user->uid,
  'status' => 1,
  'comment' => 1,
  'promote' => 0,
);

$entity = entity_create('node', $values);
$wrapper = entity_metadata_wrapper('node', $entity);
$wrapper->title->set('title');
$wrapper->save(true);
entity_save('node', $entity); 

// From this, where can I get a NID value for the node that was just created?
10
inertialmedia

Vous pouvez simplement utiliser la méthode intégrée de entity_metadata_wrapper pour obtenir l'ID:

$wrapper->getIdentifier()
27
Елин Й.

Facile.

 $wrapper->save();
 $node = $wrapper->value();
 dsm($node); // which has $node->nid;

Je pensais que je répondrais à quelqu'un d'autre.

Mise à jour:

La réponse ci-dessus est une meilleure réponse $wrapper->getIdentifier().

Il existe des situations où l'entité peut avoir une sorte d'identifiant unique.

6
inertialmedia