33 Cargar fotografia del registro de la base de datos conLARAVEL 10-Sistema de control de asistencia

Duración: 13 min
Módulo: Consulta de Detalles y Gestión de Archivos 🖼️ Lección 4 de 4

Descripción

🎬 Lección 33: 📸 Carga Condicional de Fotografías y Avatares

Enlace del Video: https://youtu.be/nnmdxtjtyXU

💡 Objetivo:

Implementar la lógica final en la vista show.blade.php para mostrar la fotografía del miembro si existe, o un avatar de género por defecto si el campo está vacío, haciendo que el storage sea accesible públicamente.

1️⃣ Acceso Público al Directorio de Archivos 🌐

Laravel, por seguridad, aísla los archivos cargados. Para que las imágenes puedan ser servidas al navegador, es necesario establecer un enlace simbólico:

  • Comando Clave: Se ejecuta la instrucción php artisan storage:link en la terminal [02:30].
  • Resultado: Este comando crea un symlink (/public/storage) que apunta al directorio real donde se guardan las imágenes (/storage/app/public), permitiendo que las imágenes sean accesibles a través de URLs públicas.

2️⃣ Lógica Condicional para la Visualización de la Imagen 👤

Se implementan las condiciones en Blade para cubrir todos los escenarios posibles del campo fotografia del miembro:

Se anidan estructuras @if para determinar qué imagen mostrar:

  • Condición Principal (¿Tiene foto?): Se pregunta si el campo $miembro->fotografia es nulo [09:59].
  • Si SÍ tiene Foto (No es nulo) ✅:
    • Se utiliza la etiqueta <img> y el helper de Laravel asset() para construir la URL, apuntando al enlace simbólico del storage (Ej: asset('storage/fotografias/imagen.jpg')) [05:08].
  • Si NO tiene Foto (Es nulo) ❌:
    • Se anida una segunda condición para verificar el genero del miembro.
    • Avatar Masculino 👨: Si el campo genero es "masculino", se carga la imagen por defecto guardada en public/images/avatar_hombre.jpg [10:23].
    • Avatar Femenino 👩: Si el campo genero es "femenino", se carga la imagen por defecto guardada en public/images/avatar_mujer.jpg [11:29].

3️⃣ Diseño y Limpieza Final ✨

Se realizan pequeños ajustes para completar la vista SHOW:

  • Se elimina el input de tipo file del formulario, ya que en la vista SHOW solo se requiere la visualización de la imagen, no su carga [07:20].
  • La lógica de la visualización de datos de un registro individual (la función CRUD Read) está completa.