03 Módulo de Ajustes y Configuración de la Clínica Dental | Laravel & Tabler UI Sistema Odontológico
Duración: 33 minDescripción
📋 Lección 03: Módulo de Ajustes y Configuración de la Clínica Dental en Laravel & Tabler UI ⚙️🏥
En este capítulo se construye el primer módulo del sistema, el Módulo de Ajustes, donde se guarda la información general del consultorio (nombre, dirección, teléfonos, divisa, logotipo y sitio web).
🔑 Pasos de Instalación y Configuración
1. ⚙️ Personalización del Archivo de Configuración Tabler ([00:01:36])
- Edición del archivo config/tablar.php para cambiar el nombre del proyecto en la barra de navegación a Sistema de Odontología / Clínica Dental.
- Cambio de la versión de la plantilla a la 1.1.
- Explicación sobre cómo conmutar la disposición del menú entre horizontal y vertical.
2. 🧱 Creación del Modelo, Migración y Controlador ([00:04:35])
- Se ejecuta en un solo paso el comando para generar los componentes del módulo en singular: php artisan make:model Ajuste -mc --resource
- Creación de los archivos de Modelo (Ajuste.php), Migración (create_ajustes_table.php) y Controlador (AjusteController.php).
3. 📐 Diagrama DBML y Estructura de la Tabla Ajustes ([00:06:54])
- Creación de un esquema DBML para modelar la entidad de ajustes.
- Definición de campos en la migración ([00:08:48]):
- nombre: String (no nulo).
- descripcion: Text / String (nulo).
- direccion: String (no nulo).
- telefono: String (no nulo).
- correo: String (no nulo).
- divisa: String (no nulo).
- logotipo: String (nulo).
- website: String (nulo).
- Ejecución del comando de migración php artisan migrate ([00:10:49]) para crear la tabla de 11 columnas en MySQL.
4. 🛣️ Definición de Rutas y Menú de Navegación ([00:12:43])
- Configuración en routes/web.php con dos rutas principales protegidas por el middleware auth:
- Ruta GET (admin/ajustes) para cargar la vista del formulario.
- Ruta POST (admin/ajustes/create) para registrar o actualizar los cambios.
- Inclusión del nuevo ítem Ajustes en el menú dentro de config/tablar.php ([00:15:29]).
5. 💻 Vista Blade y Carga Dinámica de Divisas ([00:16:30])
- Creación del directorio y archivo de vista resources/views/admin/ajustes/index.blade.php.
- Incorporación del token de seguridad @csrf y manejo del atributo enctype="multipart/form-data" para la carga de imágenes.
- Descarga e integración de un archivo divisas.json colocado en la carpeta public/ ([00:23:04]) para alimentar el desplegable de monedas del mundo.
- Implementación de un script en JS para la previsualización del logotipo antes de guardar ([00:25:38]).
6. 💾 Lógica en el Controlador y Enlace Simbólico ([00:27:14])
- Lógica en AjusteController@store:
- Validaciones de campos requeridos y restricciones para el logotipo (máximo 2 MB).
- Lógica para reutilizar el registro único (actualizar si ya existe, crear si no).
- Eliminación del logotipo anterior si se reemplaza por uno nuevo para evitar acumular archivos.
- Creación del enlace simbólico para imágenes con el comando: php artisan storage:link ([00:29:23]).
- Verificación final al guardar los datos e imágenes en MySQL y en el directorio storage/app/public/logo ([00:30:06]).