Modelos

Los modelos son clases PHP que extienden de la clase **CI_Model**. El nombre de la clase debe tener la primera letra en mayúsculas más el sufijo "**_model**" después del nombre del modelo. Por ejemplo, para crear un modelo relacionado con el módulo de libros lo llamaríamos "**Libros_model**" y el fichero se llamaría **libros_model.php**. Se recomienda que el fichero se llame igual que la clase y en minúsculas para facilitar la portabilidad. Un requisito para implementar un modelo, es que debemos de reemplazar el constructor del padre llamando al constructor del mismo mediante **parent::__construct()**.

Los modelos deben guardarse en el directorio **application/models/**

Aquí vemos un ejemplo de un modelo para libros llamado ** Libros_model** almacenado en el fichero **libros_model.php**(**application/models/libros_model.php**)

<?php
class Libros_model extends CI_Model {
   //reemplazamos el constructor y llamamos al del padre
   function __construct() {
      parent::__construct();
   }
   public function getLibrosPortada () {
      $sql = "SELECT L.id, L.isbn, L.titulo, L.precio " .
             "FROM libros L" ;
      $query = $this->db->query($sql);
      $libros = array();
      foreach ( $query->result() as $libro ) {
         $libros[] = $libro;
      }
      $query->free_result();
      return $libros;
   }
   public function read ($id) {
      $sql = "SELECT L.id, L.isbn, L.titulo, L.precio " .
             "FROM libros L " .
             "WHERE L.id = ?";
      $query = $this->db->query($sql, array($id));
      $libro = null;
      if ( $query->num_rows() == 1)
         $libro = $query->result();
      return $libro;
   }
}
?>

Como veremos en la siguiente sección, los modelos se cargarán en el controlador. Una vez cargado, accederemos como si fuera un atributo propio del objeto controlador. Ya veremos más adelante que se pueden cargar modelos de forma automática dentro del fichero **autoload.php**.

results matching ""

    No results matching ""