40 Módulos ministerios en el curso de LARAVEL 10 Sistema de control de asistencia

Duración: 49 min
Módulo: Módulos Secundarios y Funcionalidad Clave 🧩 Lección 1 de 8

Descripción

🎬 Lección 40: 🆕 Implementación del Módulo Ministerios

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

💡 Objetivo:

Crear de forma automática el modelo, la migración y el controlador del nuevo módulo 'Ministerios', habilitar sus vistas y comenzar la implementación de las funciones Index y Create/Store.

1️⃣ Preparación e Inicialización del Módulo

  • Finalización del Módulo Miembros: Se realiza un ajuste final al módulo Miembros, añadiendo un botón con estilo (btn-success) para el campo estado en la tabla index.blade.php, completando el diseño [02:29].
  • Actualización de Menú: Se agrega la opción "Ministerios" al menú principal (admin_layout.blade.php) [03:30].

2️⃣ Generación Rápida de Componentes (Artisan) 🚀

Para agilizar el desarrollo, se utiliza un único comando de Artisan para generar de forma simultánea los cuatro componentes principales del CRUD:

  • Comando Unificado:

    Bash

    php artisan make:model Ministerio -mcr

    • Ministerio: Nombre del Modelo (en singular).
    • -m: Crea el archivo de Migración.
    • -c: Crea el Controlador (MinisterioController).
    • -r: Genera los métodos Resource (index, create, store, show, edit, update, destroy) dentro del controlador [07:44].

3️⃣ Configuración de Base de Datos y Rutas

  • Definición de Campos (Migración):
    • Se edita el archivo de migración para incluir los campos solicitados: nombre_ministerio, descripcion, estado, y fecha_ingreso [09:27].
    • Corrección Clave: El campo descripcion se modifica de string a text (para permitir textos largos) y se le añade nullable() para que su ingreso no sea obligatorio [35:43] y [48:15].
  • Ejecución de Migración: Se crea la tabla en la base de datos: php artisan migrate [11:38].
  • Habilitación de Rutas: Se habilita la ruta resource en web.php [12:30]:

    PHP

    Route::resource('ministerios', MinisterioController::class);

4️⃣ Desarrollo de Vistas y Editor de Texto Avanzado

  • Vistas: Se crean las vistas básicas del CRUD dentro de un nuevo directorio ministerios (index.blade.php, create.blade.php, edit.blade.php, show.blade.php) [13:58].
  • Integración de CKEditor (Rich Text Editor): Para el campo descripcion, se integra la librería CKEditor mediante CDN en la plantilla admin_layout.blade.php [30:24]. Esto convierte el campo de descripción en un editor de texto avanzado que permite negritas, cursivas, tablas y otros formatos HTML [32:06].

5️⃣ Implementación del CRUD Básico (Index y Store)

  • Index:
    • En el MinisterioController, se consulta y se pasa a la vista todos los registros: $ministerios = Ministerio::all(); [18:28].
    • La vista index.blade.php se adapta del módulo Miembros para mostrar los nuevos campos de Ministerios [19:58].
    • Visualización de HTML: Para que el contenido HTML guardado por CKEditor se muestre correctamente y no como texto plano, la descripción se debe imprimir usando la sintaxis no escapada de Laravel: {!! $ministerio->descripcion !!} [46:55].
  • Store (Guardar):
    • Se implementa la validación en el método store, asegurando que nombre_ministerio y fecha_ingreso sean campos obligatorios (required) [39:22].
    • Se guarda la información enviada desde el formulario utilizando el modelo Eloquent y se redirige al index con un mensaje de éxito [43:57].