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?
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
Essayez d'utiliser le code ci-dessous
$entity->body->set(array('value' => "abc"));