En el capitulo anterior definimos una entidad, pero solo eso, no hacia nada. Ahora vamos a ver como interactuar con ella.
Hoy vamos a conocer las 5 operaciones mas comunes que se le suelen hacer a una entidad:
- crear
- guardar
- cargar
- actualizar
- borrar
Tenemos dos formas de hacer esto. una es usando funciones y otra usando el controlador directamente. En este articulo vamos a usar el controlador.
Las funciones son solo otra forma de tratar con las entidades. y queda en el gusto de cada uno usar controlador o funciones.
NOTA sobre las funciones para entidades: Drupal provee entity_load(), entity_label() y entity_uri() mientras que Entity API agrega las que faltan: entity_save(), entity_create(), entity_delete(), entity_revision_delete(), entity_view() y entity_access() entre otras.
Este es uno de los motivos por el cual se creó Entity API. Faltaban funcionalidades a la hora de tratar con entidades.
Crear
<?php
$datos = array('nombre' => "ejemplo");
$controller = entity_get_controller('laEntidad');
$entidad = $controller->create($datos);
Es simple de ver. Cargamos el controlador de la entidad y creamos una.
Si cabe aclaremos un poco “$controller = entity_get_controller(‘laEntidad’);“: Pedimos a Drupal que nos de el controlador de la entidad “laEntidad”.
NOTA: entity_get_controller() instancia el controlador de nuestra entidad y lo cachea, así que pueden pedirlo una o mil veces, que no va a impactar en la performance del request actual.
Guardar
<?php
//retorna los mismos estados que drupal_write_record()
$saved = entity_get_controller('laEntidad')->save($entidad);
La única diferencia con el caso anterior es que en lugar de asignar el controlador a una variable, la hemos usado al vuelo.
$entidad es el objeto que creamos antes.
Cargar
<?php
$entities = entity_get_controller('laEntidad')->load($ids);
->load() siempre nos devuelve un array
$ids es un array de entityID.
Actualizar
Supongamos que sabemos que el ID de nuestra entidad es el 11:
<?php
$entities = entity_get_controller('laEntidad')->load(array(11));
$entidad = $entities[11];
$entidad->nombre = "nombre cambiado";
entity_get_controller('laEntidad')->save($entidad);
Borrar
<?php
entity_get_controller('laEntidad')->delete(array(1, 2, 3, 4));
Donde el array que se le pasa es un listado de los entityID que queremos borrar.
NOTA: el método ->delete() no devuelve nada.
Eso es todo. Para acabar queda comentar que el controlador que nos proporciona Entity API tiene mas métodos bastante útiles y que les recomiendo revisar. Estos están en el archivo “entity.controller.inc” del modulo (busquen la clase “EntityAPIController”).
Chau!
Hola. me podrias indicar cual es la funcion para agregar registros a la tabla que colocaste de ejemplo (nombre_de_la_tabla)