I'm trying to do something like this:
function create_content($type,$content){
$node = entity_create('node', array('type' => $type));
$emw_node = entity_metadata_wrapper('node', $node);
$fields = field_info_instances("node",$type);
foreach ($content as $field => $value){
if (array_key_exists($field,$fields)){
$type=field_info_field_by_id($fields[$field]['field_id'])['type'];
if ($type=='link_field') {
$emw_node->$field->url = $value;
}
else {
$emw_node->$field = $value;
}
}
}
$emw_node->save();
$id = $emw_node->getIdentifier();
$emw_node->other_field = $id;
$emw_node->save();
}
With the idea of copying the node id to another field. However, I get an error:
EntityMetadataWrapperException: Invalid data value given. Be sure it matches the required data type and format. Value at node(9999)->field_other_field: 9999. in EntityMetadataWrapper->set() (line 122 of /sites/all/modules/entity/includes/entity.wrapper.inc).
How do I do this properly, preferably while still using an entity metadata wrapper?