Com obtenir un node pel seu NID a Drupal 8 i Drupal 9

Client
  • Omitsis
Technologies
Date
  • 14/06/2019

Una cosa bàsica a Drupal 8 i Drupal 9 (que són gairebé iguals) quan programem és obtenir (load) un node segons el seu ID. Abans, a Drupal 7, això es feia així:

1$nid = 123; // valor d’exemple2$node = node_load($nid);

Ara, a Drupal 8, al principi tot sembla més complicat, i a més es pot fer de diverses maneres:

1$nid = 123; // valor d’exemple2$node_storage = \Drupal::entityTypeManager()->getStorage('node');3$node = $node_storage->load($nid);

O en la versió d’una sola línia:

1$nid = 123; // valor d’exemple2$node = \Drupal::entityTypeManager()->getStorage('node')->load($nid);

O en la versió que s’assembla molt a Drupal 7:

1$nid = 123; // valor d’exemple2$node = \Drupal\node\Entity\Node::load($nid);

I si això ho has de fer múltiples vegades, és millor declarar el namespace amb use per escriure menys codi. Fes-ho a la part superior del fitxer PHP on després utilitzis Node.

1use Drupal\node\Entity\Node;2​3$nid = 123; // valor d’exemple4$node = Node::load($nid);
JU

julia

manager

Recent Posts