Bienvenidos sean a este post, hoy haremos la tabla de los usuarios y el modelo para los usuarios.
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
-> );
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
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
{
}
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);
}
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);
}
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);
}
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);
}
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);
}
}
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.


Donación
Es para mantenimento del sitio, gracias!
$1.50
