Anuncios

Bienvenidos sean a este post, hoy haremos la tabla de los usuarios y el modelo para los usuarios.

Anuncios

Pero primero debemos crear una nueva tabla la cual sera para almacenar la informacion de los usuarios, para ello abriremos el cliente de mysql (mariadb) y en la base que estemos utilizando, en mi caso se llama curso, ejecutaremos el siguiente comando:

MariaDB [curso]> CREATE TABLE IF NOT EXISTS usuarios (
    -> id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> usuario VARCHAR(255) DEFAULT NULL,
    -> email VARCHAR(255) DEFAULT NULL,
    -> clave VARCHAR(255) DEFAULT NULL,
    -> creado DATETIME DEFAULT NULL,
    -> token_reset VARCHAR(255) DEFAULT NULL
    -> );
Anuncios

Esta es una tabla sencilla donde primero verificamos que no exista para crearla, en caso de no existir contendra las siguientes columnas:

  • id, sera basicamente la clave primaria para buscar de forma optima los datos
  • usuario, almacenara el identificador del usuario
  • email, almacenara el correo del usuario
  • clave, almacenara la contraseña del usaurio
  • creado, almacenaremos el momento que fue creado el usuario
  • token_reset, esto nos servira para cuando deseemos recuperar la contraseña
Anuncios

Este ultimo campo nos sera util cuando hablemos sobre este tema en particular pero por el momento no le prestaremos atencion, con nuestra tabla creada nuestro siguiente paso sera crear el modelo para los usuarios, para ello debemos ir al directorio Modelos dentro del directorio app, crearemos un archivo que llamaremos Usuarios.php y le agregaremos el siguiente codigo:

Usuario.php

<?php

namespace App\Modelos;

use System\ModeloBase;

class Usuario extends ModeloBase
{

}
Anuncios

Como siempre primero establecemos el namespace, luego importamos a la clase ModeloBase y definimos a la clase Usuarios, procedemos a agregar el primer metodo de la clase:

        public function get_hash($usuario)
        {
                $datos = $this->db->select('clave from usuarios ' .
                        'where usuario = :usuario', [':usuario' => $usuario]);
                return (isset($datos[0]->clave) ? $datos[0]->clave : null);
        }
Anuncios

Este metodo se encargara de obtener la clave almacenada en la tabla, para ello usaremos el metodo select que hicimos en este post, para ello pasamos el query y lo siguiente es un return donde verifica si se obtuvo un valor, en caso de ser verdadero lo envia de lo contrario envia null, pasemos a agregar el siguiente metodo:

        public function get_data($usuario)
        {
                $datos = $this->db->select('* from usuarios ' .
                        'where usuario = :usuario', [':usuario' => $usuario]);
                return (isset($datos[0]) ? $datos[0] : null);
        }
Anuncios

Este metodo es muy similar al anterior pero en lugar de devolver un solo datos nos devuelve todos los datos de la base pero en conducta es similar al anterior dado que si no encuentra nada nos devuelve un null, agreguemos el siguiente metodo:

        public function get_email($email)
        {
                $datos = $this->db->select('email from usuarios ' .
                        'where email= :email',[':email' => $email]);
                return (isset($datos[0]->email) ? $datos[0]->email : null);
        }
Anuncios

Este metodo es igual al metodo get_hash pero en lugar de obtener el valor del campo clave nos devolvera el valor de email, nuestro ultimo paso sera agregar los siguientes metodos:

        public function insert($datos)
        {
                $this->db->insert('usuarios', $datos);
        }

        public function update($datos, $where)
        {
                $this->db->update('usuarios', $datos, $where);
        }

        public function delete($where)
        {
                $this->db->delete('usuarios', $where);
        }
Anuncios

En este caso son tres metodos para utilizar los metodos insert, update y delete de la clase Database, respectivamente, observen como solo pasan los datos necesarios, en el primer caso los datos que debemos ingresar, en el segundo los datos a actualizar y la condicion del where y por ultimo la condicion que debemos usar para borrar y en todos los casos siempre usaremos la tabla usuarios, para finalizar vamos a ver el codigo de este clase hasta el momento:

Usuario.php

<?php

namespace App\Modelos;

use System\ModeloBase;

class Usuario extends ModeloBase
{
        public function get_hash($usuario)
        {
                $datos = $this->db->select('clave from usuarios ' .
                        'where usuario = :usuario', [':usuario' => $usuario]);
                return (isset($datos[0]->clave) ? $datos[0]->clave : null);
        }

        public function get_data($usuario)
        {
                $datos = $this->db->select('* from usuarios ' .
                        'where usuario = :usuario', [':usuario' => $usuario]);
                return (isset($datos[0]) ? $datos[0] : null);
        }

        public function get_email($email)
        {
                $datos = $this->db->select('email from usuarios ' .
                        'where email= :email',[':email' => $email]);
                return (isset($datos[0]->email) ? $datos[0]->email : null);
        }

        public function insert($datos)
        {
                $this->db->insert('usuarios', $datos);
        }

        public function update($datos, $where)
        {
                $this->db->update('usuarios', $datos, $where);
        }

        public function delete($where)
        {
                $this->db->delete('usuarios', $where);
        }
}
Anuncios

En resumen, hoy hemos creado la tabla que usaremos para almacenar nuestros usuarios y su controlador, en el caso de la tabla hemos hecho una basica con informacion util para nosotros, tambien con una particularidad que explicaremos mas adelante, tambien hemos creado el controlador para manejar los datos del usuario en la tabla, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50