27 Migración Secretarias en Sistema de Reserva de citas medicas en LARAVEL(PHP-MySql)FullStack

Duración: 10 min
Módulo: 👩‍💼 Módulo de Secretarias Lección 2 de 9

Descripción

📊 Lección 27: Implementación del Widget de Usuarios y Migración de Secretarias

Título del Video: 27 Migración Secretarias en Sistema de Reserva de citas medicas en LARAVEL (PHP-MySql) FullStack

Esta lección se divide en dos partes principales: la implementación dinámica del widget de usuarios en el panel principal y la definición de la estructura de la tabla de Secretarias a través de una migración.

1. 📈 Widget de Conteo de Usuarios

Se implementa la funcionalidad para mostrar el número total de usuarios registrados directamente en el panel principal del administrador (admin/index.blade.php).

  • Lógica del Controlador: En el AdminController, se realiza una consulta simple al modelo User para obtener el total de registros utilizando el método count() [00:46].

    PHP

    $totalUsuarios = User::count();

  • Envío a la Vista: La variable $totalUsuarios se pasa a la vista index.blade.php del administrador utilizando compact() [01:29].
  • Visualización en la Vista: En la vista index.blade.php, se utiliza esta variable para reemplazar el valor estático y mostrar la cantidad real de usuarios (ej. 7 usuarios) [01:52].
  • Redirección: Se configura el botón "Más información" para que redirija a la ruta del listado de usuarios (admin/usuarios) [02:18].

2. 📝 Definición de la Migración de Secretarias

Se procede a definir la estructura de la tabla secretarias en el archivo de migración creado en la lección anterior.

Campos de la Tabla

La tabla incluye los siguientes campos de información básica, además de los campos id y timestamps que Laravel crea por defecto [03:51]:

CampoTipo y RestricciónPropósito
nombresstring(100)Nombre o nombres de la secretaria.
apellidosstring(100)Apellidos de la secretaria.
cistring(100), uniqueCédula de identidad (CI) o DNI, asegurando que sea un valor único.
celularstring(100)Número de teléfono celular.
direccionstring(255)Dirección de residencia.
fecha_nacimientodateFecha de nacimiento.

Relación de Clave Foránea (Foreign Key)

Se establece la relación de la tabla secretarias con la tabla users para manejar la autenticación, evitando la redundancia de datos como correos y contraseñas [05:14]:

  • Columna de Relación: Se crea una columna user_id (unsignedBigInteger) para almacenar la clave primaria del usuario asociado [06:21].
  • Restricción: Se define la llave foránea (foreign) que:
    • Referencia al campo id de la tabla users [07:08].
    • Aplica la regla onDelete('cascade'). Esta regla asegura que si el usuario asociado es eliminado de la tabla users, el registro correspondiente en la tabla secretarias también se eliminará automáticamente [07:25].

Ejecución y Problema Común

Tras definir la migración, se ejecuta el comando para crear la tabla en la base de datos [08:01]:

Bash

php artisan migrate

  • Problema: El instructor señala que, si el motor de la base de datos predeterminado es MyISAM (en lugar de InnoDB), las relaciones de clave foránea no se mostrarán en los diagramas del gestor de bases de datos. La solución a esto se abordará en la próxima lección [08:44].