05 💻 Webs Multi-Idiomas: Configurando el Modelo Eloquent Traducible con Spatie y Vistas Principales

Duración: 18 min
Módulo: Modelos, Migraciones y Estructura de Datos Lección 1 de 4

Descripción

🔍 Lección 05: Configurando el Modelo Eloquent Traducible con Spatie y Vistas Principales 💻🌐

En este quinto capítulo conectamos la base de datos con la lógica de Laravel. Configuramos nuestro modelo Eloquent utilizando el paquete oficial de Spatie (laravel-translatable) para habilitar la traducción automática de campos específicos en un par de líneas de código. Además, estructuramos el enrutamiento base dividiendo el sistema en la sección pública y el panel de administración, y configuramos un entorno de desarrollo local más profesional con Virtual Hosts.

🎯 Lo realizado en este capítulo

  • 🧬 Configuración del Modelo Eloquent Traducible: Modificamos el modelo Pet (app/Models/Pet.php) integrando el trait HasTranslations de Spatie [01:47]. Definimos la propiedad buena práctica $table y la propiedad $fillable con todos los campos de la migración para permitir la asignación masiva de datos de forma segura [02:39, 03:08].
  • La Magia de Spatie ($translatable): Declaramos la propiedad protegida $translatable asignándole un array con los campos específicos que cambiarán según el idioma: historia (history), temperamento (temperament) y estado de salud (health_status) [04:43, 05:27]. Con esto, Laravel interpretará automáticamente las estructuras JSON de esos campos según la localización activa.
  • 🎮 Controladores y Arquitectura de Vistas (Pública vs Admin): Creamos mediante Artisan dos controladores estratégicos: WebController y AdminController [06:32]. Paralelamente, organizamos el directorio de vistas (resources/views) creando las carpetas separadas web y admin, cada una con su respectivo archivo de arranque index.blade.php [07:44, 08:18].
  • 🧭 Enrutamiento y Renderizado de la Plantilla: Reconfiguramos las rutas en routes/web.php para apuntar la raíz hacia la nueva vista pública index [09:23]. Para el panel administrativo, creamos la ruta /admin que ejecuta el método index de su controlador, retornando la estructura limpia y responsiva de la plantilla base (Starter Page) de AdminLTE [10:44, 13:17].
  • 🛠️ Configuración de Virtual Host en WampServer: Dejamos atrás la clásica URL de servidor interno local (localhost:8000) para configurar un dominio local de pruebas profesional: refugio.test [13:57, 14:17]. Tras reiniciar los servicios del servidor web, validamos que el middleware de localización detecte y maneje el idioma de forma automática directo sobre el nuevo dominio tanto en el Login como en el Dashboard [16:04, 16:46].

🗄️ Próximo paso

Con el modelo Pet preparado para recibir traducciones automáticas en sus campos JSON y las vistas base de administración cargando la plantilla de AdminLTE sobre nuestro propio Virtual Host, la estructura del backend está lista. En la próxima lección comenzaremos a construir el formulario de registro de mascotas, integrando los campos tradicionales y dinámicos multi-idioma dentro de la interfaz gráfica. ¡Nos vemos en el próximo video! 🐾