Code Igniter es de esos frameworks con los que he trabajado ya por mucho tiempo, después de usar cosas como Django o Ruby lo siento un poco atrasado. La razón por la cual lo sigo usando es por su simpleza, rapida instalación y arte al momento de codificar. Para hacerme la vida mas facil desarrolle una extensión de la clase CI_Model que permite evitar re-escribir y re-escribir peticiones a la base de datos que se regresan como objetos y que después hay que parsear y después actualizar. Desde mi punto de vista mucho trabajo.
Esta es una clase genérica que permite hacer peticiones del tipo
Esto es un Get del ID 10
$persona = new Persona_model( 10 );
Normalmente harías un
$query = $this->db->get_where('persona', array('id' => $id), 0, 0);
$persona=$query->result();
La diferencia comienza al querer tratar con el objeto. Para Obtener el nombre usaremos
$persona->get( 'nombre' );
En lugar de
$this->db->select('nombre');
$query = $this->db->get('persona');
$persona=$query->result();
Para actualizar usaremos
$persona->set( 'nombre', 'Arturo Jamaica' );
$persona->update();
En lugar de un
$persona = new Persona;
$this->db->where('id', $id);
$this->db->update('persona', $persona);
Si lo notas trabajamos con objetos, no con peticiones recurrentes a la BD. Lo cual nos hace la vida más facil
Para más información visita el Repo en Github










Personalmente no le veo lo malo a una sola linea de codigo en el modelo:
$persona = $this->db->where(‘id’,$id)->get(‘persona’)->result();