Cómo automatizar operaciones IDU en CodeIgniter con Active Record

La mayoría de los modelos en CodeIgniter tienen las funciones IDU: inserción, borrado y edición (de las siglas del inglés insert, delete and update), pero cada uno con sus propias características como por ejemplo el nombre de la tabla o los propios campos. ¿De qué manera agilizar esto?

Si cada modelo se realiza para trabajar con cada tabla, cada variable del modelo será cada columna de la tabla de base de datos. A partir de ahí, aprovecharemos el Active Record de CodeIgniter pasándole los datos como la clase entera, en lugar de cada uno de los atributos, que serán establecidos en el controlador previamente.

Por ejemplo, el modelo Empleado:

class Empleado extends CI_Model { 
  var id_empleado = NULL; 
  var nombre = NULL; 
  var fecha_inicio = NULL; 

  function __construct() { 
    parent::__construct(); 
} 

  function insert() { 
    $this->db->insert('empleados', $this); 
    return $this->db->insert_id(); 
  } 

  function update() { 
    $this->db->where('id_empleado', $this->id_empleado); 
    return $this->db->update('empleados', $this); 
  }

  function delete() { 
    $this->db->where('id_empleado', $this->id_empleado); 
    return $this->db->delete('empleados', $this); 
  } 
}

De esta manera, se ahorra acceder a cada una de las variables y en cada función, usando en su lugar $this que contiene todo el objeto.