Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.
* Nuevos temas en CAKEPHP
* Ahora puedes bajar los proyectos finalizados!
* Sigue a la página para seguir creciendo!!

domingo, 26 de enero de 2014

CAKEPHP: Seleccionar datos de una tabla.

No hay comentarios :
Introducción

Veremos como es de fácil seleccionar los datos de una tabla de nuestra base de datos creada en la entrada anterior CakePHP: Configuración Inicial., para esto tendremos que crear un modelo, una vista y un controlador, entonces, vamos a ello.

Es importante que se haga la parte anterior, por que esto es una continuación, entonces, si se continua con el mismo ejemplo se puede tener un mejor aprovechamiento del conocimiento.

Desarrollo

Vamos a trabajar en nuestro proyecto haciendo que nos muestre todos los datos que se encuentran en nuestra tabla nombres. Lo primero que haremos es crear un modelo, esto lo crearemos en la siguiente ruta: SourceFiles/app/Model o si es en netbeans veremos que nos crea una carpeta Model en la raíz.

Estándares para la creación de un modelo:

 - El nombre sería el de la tabla en singular.
Creamos una nueva clase php que se llamará Nombre.php y contendrá el siguiente código:
<?php
/**
 * Description of Nombre
 *
 * @author Fran
 */
 
class Nombre extends AppModel{ // SIEMPRE EXTENDER DE AppModel, si no, no va a servir
    var $name ='Nombre'; // No es necesario pero acostumbrémonos a colocarla
      // para futuros usos que se le puede dar.
}

?>

Y ya!, tenemos nuestro modelo creado, no hace falta definir nada más con eso ya nuestro controlador conocerá a que tabla debe dirigirse. 

Lo siguiente es crear un controlador para nuestro modelo, vamos a la ruta: SourceFiles/app/Controller o igual en la raíz tenemos la carpeta controller si usamos netbeans. Estando ahí creamos el controlador:

Estándares para la creación de un controlador
 - El nombre sería el nombre de la tabla (recordemos esta en plural) más la palabra Controller por ejemplo: NombresController.php

Creamos nuestra clase NombresController.php y contendrá el siguiente código

<?php

/**
 * Description of NombresController
 *
 * @author Fran
 */
class NombresController extends AppController{ // SIEMPRE EXTENDER DE AppController
    var $name = "Nombres"; // al igual que con el modelo no es necesario, pero por estándar mejor colocarlo.
  
}

?>
Y crearemos una función que se llamará listar, para que haga el select a la tabla

public function listar() {
        $this->set('nombres', $this->Nombre->find('all'));
}?>

 Vamos a explicar un poco mejor esta función:

$this->Nombre->find('all')
'Nombre' sería nuestro modelo que creamos anteriormente
find('all')
equivale a un SELECT *, entonces esta parte sería como ejecutar en MySQL
SELECT * FROM nombres;
La otra parte sería 'nombres' es una variable a la cual le asignamos el resultado de $this->Nombre->find('all') esto a través de la función 'set'.

Una vez que terminamos esto crearemos nuestra vista para que nos muestre los datos. Creamos una carpeta en SourceFiles/app/View con el nombre de nuestra tabla, en este caso, nombres, dentro de ella crearemos un archivo .ctp para nuestra vista, esta vista debe tener el nombre de nuestra función creada anteriormente: listar.ctp y contendrá el siguiente código.

<?php echo ('<h1>Nombre de la BASE DE DATOS!</h1>');
// $nombres es la variable a la que le asignábamos el resultado de nuestra consulta en
// la función listar en nuestro controlador
if (empty($nombres)) {
    //Si no tienen nada nos dirá que no existen nombre actualmente
    echo ("Actualmente no hay Nombres.");
} else {

    echo '<table>';
    echo '<tr>';
    echo '<th>id</th>';
    echo '<th>Nombre</th>';
    echo ' </tr>';

    foreach ($nombres as $nombre):
        // recorremos nuestra variable para obtener cada uno de nuestros 
        // nombres individualmente 
        // luego de nuestro nombre sacamos los datos donde 'Nombre' es el nombre
        // de nuestro modelo e 'id' y 'nombre' son los campos de la tabla

        echo '<tr>';
        echo '<td>';
        echo $nombre['Nombre']['id'];
        echo '</td>';
        echo '<td>';
        echo $nombre['Nombre']['nombre'];
        echo '</td>';
        echo ' </tr>';
    endforeach;

    echo '</table>';}

Y bueno con esto ya tenemos un proyecto sencillo en CakePHP que realiza una selección de todos los datos de una tabla en la base de datos.

Y bueno cuando lo corremos tenemos que dar una dirección para acceder a nuestro listar, entonces ponemos esta:

http://localhost/MiPrimerCakePHP/nombres/listar

Donde MiPrimerCakePHP es el nombre del proyecto, nombres es el nombre de la carpeta donde está nuestra vista y listar es nombre de nuestra vista.

Conclusiones

Reiterando esta conclusión que dí en la entrada anterior, CakePHP nos facilita mucho la creación de aplicaciones, como se logra apreciar crear una selección de la base de datos, puede llevar a lo sumo cinco minutos, y queda totalmente funcional.

No hay comentarios :

Publicar un comentario