Espacio Daycry - Espacio de programación

  • Inicio
  • Categorias
    • - Codeigniter
    • - Symfony
    • - HTML5
    • - Linux / Ubuntu
    • - PHP
    • - Jquery
  • PortFolio - Proyectos Codeiniter
    • - Encuestas Online
    • - Estadísticas - GLPI
    • - Gestión de colas
    • - Web Service - REST

viernes, 27 de junio de 2014

Clase Model - Codeigniter

Posted by daycry at 13:09 Labels: Codeigniter , Framework , programación , web

La clase Model de Codeigniter es la clase que nos permite realizar la consultas contra la base de datos. De esta forma si en algún momento decidieramos cambiar el motor de base de datos, no afectaría ni a los controladores ni a las vistas de nuestra aplicación web.

Estos ficheros php se encuentran dentro de la carpeta "models".

Un ejemplo de archivo sería el siguiente:

class User_model extends CI_Model {

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

Este fichero lo guardariamos en la carpeta models con el nombre de: "user_model.php".

En el ejemplo anterior, vemos la declaración de un objeto model con la función "construct".
Simplemente hereda las funciones de CI_Model, que es la clase del core de Codeigniter que contiene todas las funciones de consulta, inserción, actualización y borrado de datos de la BBDD.

Codeigniter tiene una característica muy buena, ya que permite realizar este tipo de acciones de manera muy sencilla, gracias al active record.
Active record son funciones que montan automáticamente la consulta a la base de datos, pasándole los parámetros que deseeamos.

Como por ejemplo:

$query = $this->db->get('users');

La siguiente linea de código montaría la siguiente consulta:

// Produce: SELECT * FROM users

Dependiendo si el resultado es un conjunto de filas o simplemente una fila, utilizaremos la función "result(), o "row()".

Veamos un ejemplo completo

class User_model extends CI_Model {

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

    public function getUsers(){
        $query = $this->db->get('users');
        return $query->result();
    }
}

El siguiente ejemplo devolvería múltiples filas de resultados de la tabla users.


¿Cómo utilizar esta función para recuperar los datos?

Una vez tenemos el fichero model construido, lo que se debería de hacer es llamar a la función desde el fichero controlador, y se haría de la siguiente manera:

$datos['usuarios'] = $this->user_model->getusers();

Donde $datos['usuarios'] es el array que contendrá el conjunto de objetos de la consulta anterior. 

"No voy a explicar como se crea un controlador ni como pasar los datos al fichero vista, ya que ya está explicado en los post siguientes."

Controlador: http://daycryweb.blogspot.com.es/2014/04/controllers-codeigniter-framework.html
Vista: http://daycryweb.blogspot.com.es/2014/04/controllers-ii-codeigniter-framework.html

Para poder recuperar cada uno de los valores, se utilizaría la función "foreach" dentro del fichero vista.

<?php
foreach($usuarios as $user){
    echo $user->id;
    echo "&nbsp;
    echo $user->name;
}
?>

Se podría realizar el foreach dentro del controlador de la siguiente forma:

<?php
foreach($datos['usuarios'] as $user){
    echo $user->id;
    echo "&nbsp;
    echo $user->name;
}
?>

Podeis encontrar mas información en la siguiente url:

http://ellislab.com/codeigniter/user-guide/database/active_record.html

Tweet

Related Posts

  • PROGRAMACIÓN ORIENTADA A OBJETOS ( PARTE I )
    PROGRAMACIÓN ORIENTADA A OBJETOS ( PARTE I )
  • Jquery - Fancy Box
    Jquery - Fancy Box
  • API Zoom for Codeigniter 4
    API Zoom for Codeigniter 4
  • Install Twig on Codeigniter 4
    Install Twig on Codeigniter 4

No hay comentarios :

Publicar un comentario

Entrada más reciente Entrada antigua Inicio
Suscribirse a: Enviar comentarios ( Atom )

Sígueme en las Redes Sociales



Follow @daycry9



Donaciones

Suscribirse a

Entradas
Atom
Entradas
Comentarios
Atom
Comentarios

Datos personales

daycry
Ver todo mi perfil

Entradas populares

  • Crear archivos PHP ejecutables por terminal UBUNTU
    En este apartado vamos a explicar como ejercutar archivos PHP a través del terminal de Ubuntu. Lo primero que tendríamos que hacer es inst...
  • Pâginación PHP con Librería Zebra Pagination
    En este blog voy a comentar un tema que se utilizan en casi todas las páginas web que existen, y es el tema de la paginación. La paginaci...
  • PHPExcel - Codeigniter
    Este post trata de la integración de la librería PHPExcel en Codeigniter, aunque se podría aplicar a cualquier librería, como por ejemplo mP...
  • PHP- Operaciones con fechas - Sumar Horas, minutos y segundos
    Ejemplo para añadir o sumar un número determinado de hora/s, minuto/s, segundo/s a una fecha en php. Con la función strtotime se puede ...
  • Codeigniter - Múltiples conexiones a base de datos
    Este tema es uno de los temas primordiales sobre el framework Codeigniter, ya que en alguna ocación nos hemos visto obligados a recoger dato...

© Espacio Daycry - Espacio de programación 2013 . Powered by Bootstrap , Blogger templates and RWD Testing Tool