use Drupal\node\NodeInterface;
/**
* Implements hook_ENTITY_TYPE_insert() for node entities.
*
* This tests saving a node on node insert.
*
* @see \Drupal\node\Tests\NodeSaveTest::testNodeSaveOnInsert()
*/
function node_test_node_insert(NodeInterface $node) {
// Set the node title to the node ID and save.
if ($node->getTitle() == 'new') {
$node->setTitle('Node ' . $node->id());
$node->setNewRevision(FALSE);
$node->save();
}
}
Now There is so many functions are there to get the values,
For All the functions available visit the API code,
https://api.drupal.org/api/drupal/core%21modules%21node%21src%21NodeInterface.php/interface/NodeInterface/8.2.x
Some of as below,
Node edit form, Drupal 8 Automatically Load the whole object no need to load the entity like below,
if ($event->getFormId() == 'node_alexa_audio_clips_edit_form') {
$node = \Drupal::routeMatch()->getParameter('node');
//file field value
$node->get('field_audio')->getvalue()[0]['target_id'];
or
$node->field_audio->entity->getFileUri();
}
Load the Paragraph with in node directly:
$node = \Drupal::routeMatch()->getParameter('node');
$para = $node->field_news_stream_content->referencedEntities();
//where field_news_stream_content is paragraph ref field
foreach ($para as $node_para){
$ref_entity = $node_para->entity;
//kint($node_para->toArray());
}
Get The node Field value
// Define usage at the top of your file.
use Drupal\node\Entity\Node;
//https://api.drupal.org/api/drupal/core%21modules%21node%21src%21Entity%21Node.php/class/Node/8.2.x
//it Will call the class node & can access all the functions of node,
$node = Node::load(25497);
let suppose we want to get the value of field
then use
$value = $node->get('field_issue_title')->value; // It will return the value if it has the val key in the field , like [nid][0][value],
if the value key is not present then use ,
$value = $node->get('field_issue_title')->getValue(); // if the structure is like [type][0][target_id], if use getvalue(), it will return the array [0][target_id] => 'test name'
$value = $node->get('field_issue_title')->getString(); // it direct return the value, test name
$node->toArray()// it return the whole array
We can load the node by Entity type query format also, like below
$entity = \Drupal::entityTypeManager()->getStorage('node')->load(25497);
print_r($entity->toArray());
http://www.drupal8.ovh/en/tutoriels/58/get-field-value-of-a-node-entity
Comments
Post a Comment