Drupal 8 has done a great overhaul in terms of entity management. Lets have a look on how can be access and set data for fields in entities.
All entities implement
Access Entity Title: <?php drupal_set_message($entity->label()); ?> Access Entity Id (Nid for Node and Uid for users). <?php drupal_set_message($entity->id()); ?> To access a field value from an entity. There are multiple ways <?php drupal_set_message('Some text value: ' . $entity->field_article_some_text->value); drupal_set_message('Some text value - Second Way ' . $entity->get('field_article_some_text')->value); $entity_arr = $entity->toArray(); // Converts to array. drupal_set_message('Some text value - Third Way: ' . $entity_arr['field_article_some_text'][0]['value']); ?> Check if field is present or not in the entity <?php drupal_set_message('Is Present: ' . $entity->hasField('field_article_some_text')); // Returns 1 if found, null otherwise ?> Set the value of a field in an entity <?php $entity->field_article_some_text->value = 'Some New Text Value'; $entity->set('field_article_some_text', 'Some New Text Value'); // Another Way $entity->setTitle('The new Title'); $entity->set("body", 'New body text'); $entity->body->value = 'body text'; $entity->body->format = 'full_html'; ?> Saving an entity <?php $entity_save(); ?> Loading an entity - Lets say a node: <?php $node = \Drupal\node\Entity\Node::load($nid); $user = \Drupal\user\Entity\User::load($uid); $node = \Drupal::entityTypeManager()->getStorage('node')->load($nid); // Generic method ?> Create a new node programmatically <?php // Create node object with data. $node = \Drupal\node\Entity\Node::create([ 'type' => 'article', 'title' => 'Druplicon test', 'field_article_some_text' => [ 'value' =>'Some text also here', ], ]); $node->save(); ?> Links https://www.metaltoad.com/blog/drupal-8-entity-api-cheat-sheet https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21Entity.php/class/Entity/8 http://realize.be/topics/drupal-8-field-api-series http://www.drupal8.ovh/en/tutoriels/65/update-a-node-entity-programmatically-drupal-8 http://www.drupal8.ovh/en/tutoriels/14/create-a-node-programmatically-drupal-8 http://realityloop.com/blog/2015/10/08/programmatically-attach-files-node-drupal-8 http://www.drupal8.ovh/en/tags/drupal-8 https://www.chapterthree.com/blog/drupal-8-theming-setting-theme-debugging
Drupal\Core\Entity\EntityInterfaceAccess Entity Title: <?php drupal_set_message($entity->label()); ?> Access Entity Id (Nid for Node and Uid for users). <?php drupal_set_message($entity->id()); ?> To access a field value from an entity. There are multiple ways <?php drupal_set_message('Some text value: ' . $entity->field_article_some_text->value); drupal_set_message('Some text value - Second Way ' . $entity->get('field_article_some_text')->value); $entity_arr = $entity->toArray(); // Converts to array. drupal_set_message('Some text value - Third Way: ' . $entity_arr['field_article_some_text'][0]['value']); ?> Check if field is present or not in the entity <?php drupal_set_message('Is Present: ' . $entity->hasField('field_article_some_text')); // Returns 1 if found, null otherwise ?> Set the value of a field in an entity <?php $entity->field_article_some_text->value = 'Some New Text Value'; $entity->set('field_article_some_text', 'Some New Text Value'); // Another Way $entity->setTitle('The new Title'); $entity->set("body", 'New body text'); $entity->body->value = 'body text'; $entity->body->format = 'full_html'; ?> Saving an entity <?php $entity_save(); ?> Loading an entity - Lets say a node: <?php $node = \Drupal\node\Entity\Node::load($nid); $user = \Drupal\user\Entity\User::load($uid); $node = \Drupal::entityTypeManager()->getStorage('node')->load($nid); // Generic method ?> Create a new node programmatically <?php // Create node object with data. $node = \Drupal\node\Entity\Node::create([ 'type' => 'article', 'title' => 'Druplicon test', 'field_article_some_text' => [ 'value' =>'Some text also here', ], ]); $node->save(); ?> Links https://www.metaltoad.com/blog/drupal-8-entity-api-cheat-sheet https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21Entity.php/class/Entity/8 http://realize.be/topics/drupal-8-field-api-series http://www.drupal8.ovh/en/tutoriels/65/update-a-node-entity-programmatically-drupal-8 http://www.drupal8.ovh/en/tutoriels/14/create-a-node-programmatically-drupal-8 http://realityloop.com/blog/2015/10/08/programmatically-attach-files-node-drupal-8 http://www.drupal8.ovh/en/tags/drupal-8 https://www.chapterthree.com/blog/drupal-8-theming-setting-theme-debugging