Hoppa till huvudinnehåll
Menu

Den här sidan använder cookies. Om du fortsätter använda sidan så accepterar du användandet av cookies. Läs mer om cookies

Jag förstår

Så gör man node_load i Drupal 8

I Drupal 7 använda man node_load för att hämta värden från en nod, men hur gör man i Drupal 8?

I Drupal 7 använda man node_load för att hämta värden från en nod. Det går (i skrivande stund) fortfarande att använda i Drupal 8 men funktionen är markerad "Deprecated", vilket betyder att funktionen kommer att plockas bort från Drupal API under en framtida release. Så hur ska man göra istället om man vill hämta en nod och använda data från den? Det finns några olika alternativ beroende på vilket data man har tillgängligt. 

Om du vill ladda den nuvarande noden från en nod sida så kan man anropa detta

\Drupal::routeMatch()->getParameter('node');

Om man har nod id tillgänligt så kan man göra såhär

$node = \Drupal::entityManager()->getStorage('node')->load($node_id);

eller

$node = \Drupal\node\Entity\Node::load($node_id);

Då får man ett nod objekt tillbaka. Det man ska komma ihåg är att det inte bara går att ta ett värde direkt från objektet på samma sätt som i Drupal 7, detta eftersom datat ofta är "protected" vilket betyder att variabeln som innehåller datat tillhör en klass och att den är markerad "Protected". Detta gör att värdet ändast går att läsa och förändra via den klassens medlemsfunktioner (setters/getters) tex 

$body_value = $node->get('body')->value;

Men det finns även en lite genväg man kan skriva som är ganska snygg.

$body_value = $node->body->value;

Att förändra ett värde är lika enkelt.

$node->set('body', t('Some new text here'))->save();

Här ser vi att man kan lägga till save(); direkt på set funktionen.

ett annat sätt att skriva samma sak är

$node->body->value = t('Some new text here');
$node->save();

Det finns en mängd olika funktioner man kan anropa på ett nod objekt https://api.drupal.org/api/drupal/core!modules!node!src!Entity!Node.php/class/Node/8

 

Vi hjälper dig nå resultat. Kontakta oss Ring direkt på 08-20 90 04.

Cache in Drupal 8: How it worked, and what we wanted to be solved in D8

If you just want your content to be cached before Drupal 8, there were almost no problems, just turn on caching for anonymou…
MDN

Cache in Drupal 8: Introduction

In a series of blog posts we will go through how caching works in Drupal 8, to try to demystify the caching layer in Drupal …
MDN

Updating taxonomy term name in Drupal 8

Here you can read how to use hook update for updating taxonomy terms in Drupal 8.