Como obtener / buscar un nodo en drupal 8 y drupal 9 programáticamente

Drupal 9

Hola ¿que tal?.

En ocasiones cuando vamos a programar algún módulo, tenemos la necesidad de buscar un nódo programáticamente a través de su id de contenido (nid). 

En ese sentido Drupal 8/9 tienen muchas maneras para que el programador pueda buscar un nodo.

Requesitos: 

Instalar los siguientes módulos:

https://www.drupal.org/project/devel

https://www.drupal.org/project/devel_php

Luego que instalen estos módulos, hay que ir a la url: /admin/config/development/devel

y ahí seleccionar la opción: 

3) poner los códigos que vamos a enseñar.

4) presionar el botón de ejecutar.

 

A partir de ahora, vamos a ver las diferentes maneras de buscar un nódo:

forma 1:

$nid = 1; // valor de ejemplo

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

dpm($node->title->value); //la funcion dpm es del modulo devel y permite mostrar informacion.

//valor del body
dpm($node->body->value); 

forma 2:

//usando el namespace arriba con la palabra use.
use \Drupal\node\Entity\Node;

$nid = 1; // valor de ejemplo

$node = Node::load($nid);

dpm($node->title->value); 

dpm($node->body->value); 

forma 3:

$nid = 1; // valor de ejemplo

$node = \Drupal::entityTypeManager()->getStorage('node')->load($nid);

dpm($node->title->value); 

dpm($node->body->value); 

en cada uno de los casos anteriores: drupal nos mostrará un resultado parecido al siguiente:

resultado node load

 

forma 4: 

si queremos cargar multiples nodos les enseñaremos como:

pero en este caso de ejemplo: debemos crear otro nodo que en este caso de ejemplo se

supongamos que ahora tengo dos nodos (id 1 y el 2);

$nids = [1,2]; // valores de ejemplo

$nodes = \Drupal\node\Entity\Node::loadMultiple($nids);

foreach ($nodes as $node) {
    dpm($node->title->value); 
}

el resultado sera algo parecido a este:

node load  multiple

Espero que les haya gustado.

Asi que sin masssss, nos veremos en la próxima.

Saludos y Dios les bendiga.

Déjenme sus comentarios si quieren que hablemos de algo en específico. 

 

Etiquetas

Comments

Añadir nuevo comentario

Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Comparte este artículo