web-dev-qa-db-fra.com

EntityMetadataWrapperException: valeur de données non valide donnée. Assurez-vous qu'il correspond au type et au format de données requis. dans EntityMetadataWrapper-> set ()

Je crée des nœuds par programmation. J'ai écrit le code suivant,

$e = entity_create('node', array('type' => 'some_node'));
// Specify the author.
$e->uid = 1;
// Create a Entity Wrapper of that new Entity.
$entity = entity_metadata_wrapper('node', $e);

// Specify the title.
$entity->title = 'Some Title';
$entity->body = 'abc';
$entity->save();

En donnant de la valeur au corps, je reçois l'erreur suivante. Corps commentant ça marche bien

EntityMetadataWrapperException: valeur de données non valide donnée. Assurez-vous qu'il correspond au type et au format de données requis. dans EntityMetadataWrapper-> set ()

Quelle est la cause de cette erreur et comment puis-je la corriger?

3
Ali Nouman

Body est un champ Field API et non une variable native PHP, vous ne pouvez donc pas lui attribuer de valeurs comme ça. Au lieu de cela, vous devez passer un tableau avec les clés suivantes:

$entity->body->set(array(
  'value' => 'This is the body',
  'summary' => 'This is the summary',
  'format' => 'full_html',
));

Si vous souhaitez définir la valeur pour une langue spécifique, vous appelez avant de définir:

$entity->language(LANGUAGE_NONE); // or 'en' or whatever

Plus d'informations sur les wrappers: https://drupal.org/node/1021556

9
Wtower

Essayez d'utiliser le code ci-dessous

$entity->body->set(array('value' => "abc"));
2
Anil Sagar