28 Relación de los modelos secretarias y usuarios con LARAVEL(PHP-MySql)FullStack
Duración: 11 minDescripción
⚙️ Solución al Motor de Base de Datos y Migración
El primer punto abordado fue la invisibilidad de la clave foránea en el diseñador de la base de datos [01:02]. Esto se debía a que las tablas se estaban creando con el motor de almacenamiento MyISAM, el cual no soporta relaciones de clave foránea.
La solución fue modificar el archivo de configuración de la base de datos para especificar que se utilice el motor InnoDB [02:07], el cual sí permite estas relaciones.
Para aplicar este cambio, fue necesario borrar todas las tablas existentes y volver a ejecutar todas las migraciones, además de ejecutar los seeders (sembradores) que crean los datos iniciales, utilizando el comando de Artisan: php artisan migrate:fresh --seed [03:42]. Una vez hecho esto, la relación entre la tabla secretarias y users se visualizó correctamente [04:45].
🔗 Definición de las Relaciones de Modelo (Eloquent)
Se definieron las relaciones en los modelos de Laravel para permitir la navegación entre las tablas (ej. obtener el correo electrónico del usuario desde el registro de la secretaria).
- Relación Uno a Uno: El instructor explica que un registro de secretaria debe corresponder a una única cuenta de usuario, estableciendo una relación uno a uno [05:28].
- En el Modelo User (Usuario): Se crea una función para obtener el perfil de secretaria asociado. El instructor utiliza inicialmente hasMany [06:47], aunque el contexto de una secretaria por usuario apunta a una relación hasOne.
- En el Modelo Secretaria: Se define la relación inversa, donde una secretaria pertenece a un usuario. Esta relación se establece correctamente con el método belongsTo [08:00].
🖼️ Creación de la Vista de Listado
Finalmente, se comienza a trabajar en la vista principal del módulo de secretarias, index.blade.php, copiando la estructura de listado de usuarios para agilizar el proceso [09:03].
Se definen las columnas que contendrá la tabla de listado para secretarias, basándose en los campos definidos en la migración, e incluyendo información del usuario relacionado: Nombres, Apellidos, CI, Celular, Fecha de Nacimiento, Dirección, Correo Electrónico (obtenido a través de la relación de modelo) y Acciones [09:47].
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️