![Drupal gears](/sites/default/files/styles/blog_teaser/public/2024-05/drupalci_gear_1.png?itok=Ep4qfasp)
Cargar una entidad dado su id
La función load() recibe como parámetro el id de la entidad, nid para nodos, tid para términos de taxonomía, etc.
$node_entity = \Drupal::entityTypeManager()->getStorage('node')->load(125);
$term_entity = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load(16);
La funcion load() devuelve un objeto de tipo Entity especifico para un tipo de dato según el tipo de entidad dado en getStorage('tipod e entidad') y al cual pertenece el id dado a load(id).
Algunos ejemplos de estos son:
- 'node': class \Drupal\node\Entity\Node
https://api.drupal.org/api/drupal/core%21modules%21node%21src%21Entity%21Node.php/class/Node/10 - 'taxonomy_term': class \Drupal\taxonomy\Entity\Term
https://api.drupal.org/api/drupal/core!modules!taxonomy!src!Entity!Term.php/class/Term/9.0.x - 'block_content': Drupal\block_content\Entity\BlockContent
https://api.drupal.org/api/drupal/core!modules!block_content!src!Entity!BlockContent.php/class/BlockContent/9.0.x - etc.
Metodos estaticos de clases especificas
Algunos tipos de contenido tienen un método estático que utiliza su clase específica correspondiente:
$node = Node::load(1);
Cargar multiples entidades de una sola vez dada una lista de ids
$entities = \Drupal::entityTypeManager()->getStorage($entity_type)->loadMultiple([1, 2, 3]);
Cargar entidades dado el valor de sus propiedades
$entities = \Drupal::entityTypeManager()->getStorage('node')->loadByProperties(['type' => 'article']);
Cargar perfil de usuario
$billing_profile = $this->entityTypeManager->getStorage('profile')->load($uid);
Cargar perfil de usuario usando propiedades como referencia
$list = \Drupal::entityTypeManager()
->getStorage('profile')
->loadByProperties([
'uid' => $uid,
'type' => 'profile_type',
]);
Load a View using EntityTypeManager
$view = \Drupal::entityTypeManager()
->getStorage('view')
->load($view_id)
->getExecutable();
La función getExecutable() devuelve un objeto de la clase viewExecutable (https://api.drupal.org/api/drupal/core%21modules%21views%21src%21ViewExecutable.php/class/ViewExecutable/9)
Un objeto viewExecutable representa una vista en su totalidad, contiene todos los datos para generar una vista, además de las funciones miembro para construir la consulta de la vista, ejecutar la consulta y renderizar la salida.
Una vez que tienes el objeto viewExecutable, puedes usar sus métodos para especificar un display o presentacion de la vista y finalmente ejecutar la vista.
// Get the NID from the View result.
$view->initDisplay();
$view->setDisplay('latest_blog');
$view->execute();
$result = $view->result;
Hacer un Query al objeto entity storage
$nodeStorage = \Drupal::entityTypeManager()->getStorage('node');
$ids = $nodeStorage->getQuery()
->condition('status', 1)
->condition('type', 'article') // type = bundle id (machine name)
->sort('created', 'ASC') // sorted by time of creation
->pager(15) // limit 15 items
->accessCheck(TRUE) // or FALSE
->execute();
$articles = $nodeStorage->loadMultiple($ids);
La función "->execute()" procesa el query y retorna una lista de ids de las entidades resultantes.