En drupal 8, 9 y 10 tenemos entidades ya sean del core o entidades custom, estas últimas pueden ser creadas a mano o utilizando el módulo contribuido https://www.drupal.org/project/eck.
1. Podemos cargar a todas las entidades de cierto tipo haciendo uso de la siguiente linea:
$users = \Drupal::entityTypeManager()->getStorage('user')->loadMultiple();
En este caso le estamos diciendo al método getStorage que cargue a la entidad user, con lo que se cargarán a todos los usuarios con el método loadMultiple().
2. Si deseamos cargar un conjunto de entidades, sólo debemos pasar un array con los id's deseados.
$entities = \Drupal::entityTypeManager()->getStorage($entity_type)->loadMultiple([1, 2, 3]);
3. Si deseamos cargar sólo una entidad en específico, podemos hacerlo con su id:
$entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load(1);
El $entity_type podría ser un user como en el caso anterior, o podría ser cualquier tipo de entidad incluso custom.
4. Para obtener un campo específico de dicha entidad podemos usar:
$entity->get('field_machine_name')
5. Si deseamos obtener sólo el id de dicha entidad:
$entity->id()
6. Si deseamos grabar un dato en alguno de los campos de la entidad, por ejemplo en el apellido de la persona, podemos hacerlo así:
$entity->set('last_name', 'Apellido del usuario');
// Guardar la entidad.
$entity->save();
7. En caso de ser un campo multiple o ilimitado podemos pasar los valores en un array:
$new_values = ['Carlos', 'Pedro', 'Juan'];
$$entity->set('name', $new_values);
$entity->save();
Para más información podemos consultar la documentación en https://www.drupal.org/docs/drupal-apis/entity-api/working-with-the-entity-api.
Me pareció interesante el artículo
Añadir nuevo comentario