03 Módulo de Ajustes y Configuración de la Clínica Dental | Laravel & Tabler UI Sistema Odontológico

Duración: 33 min
Módulo: Introducción, Configuración Base & UI Lección 3 de 3

Descripció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]).