Curso de Interfaces Dinámicas con Laravel Livewire

Formulario de edición de preguntas en Laravel

Curso de Interfaces Dinámicas con Laravel Livewire

Contenido del curso

Formulario de edición de preguntas en Laravel

Resumen

Construir el formulario de edición de una pregunta dentro de un foro en Laravel requiere combinar un controlador tradicional, vistas Blade reutilizables y rutas de tipo resource. Aquí aprendes a estructurar ese flujo paso a paso para que cualquier usuario pueda preguntar, responder y editar dentro del sistema.

¿Por qué usar un controlador tradicional en lugar de LiveWire?

No todo en una aplicación Laravel necesita reactividad en tiempo real. La edición y creación de preguntas funcionan mejor con el flujo clásico de formulario, envío y redirección.

Esto te da una idea de cómo combinar diferentes acciones según la necesidad real del módulo. LiveWire brilla en filtros y listados dinámicos, mientras que un controlador estándar es más predecible para CRUDs simples.

¿Cuándo conviene usar un controlador tradicional en Laravel? Cuando la acción no requiere actualización en vivo del DOM, como en formularios de edición o creación que solo se envían una vez.

¿Cómo se estructura el controlador para editar preguntas?

Desde la terminal generas el controlador con php artisan make:controller. Dentro necesitas dos elementos: las categorías y la pregunta específica que quieres editar [02:15].

El método edit se encarga únicamente de mostrar el formulario de edición, no de procesar el cambio. Para eso existe un método separado de actualización. Esa separación es clave en cualquier CRUD bien planteado.

Dentro del método consultas las categorías, identificas la pregunta seleccionada y pasas ambos datos a la vista correspondiente.

¿Qué datos se envían a la vista de edición?

  • La colección de categorías disponibles para el select.
  • La instancia de la pregunta que el usuario quiere modificar.
  • El listado completo, en caso de necesitarse para validaciones visuales.

Esa vista se ubica dentro de una carpeta dedicada y reutiliza la estructura del componente Blade que ya usabas en el perfil del usuario.

¿Cómo se diseña la vista del formulario de edición?

La vista parte de un componente Blade existente que copias y adaptas [04:30]. Se elimina la información sobrante y se conserva el contenedor con clases de utilidad.

El encabezado H2 muestra el texto Editar pregunta con clases como text-xl, font-semibold, mb-* y un color white/90 para mantener la coherencia visual del foro.

Debajo va el formulario, apuntando con action a la ruta update de la pregunta, usando el método POST y las directivas @csrf y @method('PUT') para que Laravel reconozca la actualización.

¿Por qué aislar los campos en un archivo formulario.blade.php?

Porque el mismo conjunto de campos (título, categoría, descripción del problema) se reutiliza en la vista de creación. Aislarlos evita duplicar código y mantiene la consistencia.

  • Creas formulario.blade.php dentro de la carpeta del recurso.
  • Lo incluyes tanto en la vista editar como en la futura vista crear.
  • Cualquier cambio en los campos se refleja automáticamente en ambos formularios.

El botón final lleva el texto Editar pregunta y reaprovecha las clases de gradiente azul de 600 a 700, esquinas redondeadas y efecto hover, copiadas desde el listado de preguntas.

¿Cómo se registran las rutas de tipo resource sin cargar las siete acciones?

Un CRUD completo en Laravel expone siete rutas: index, create, store, show, edit, update y destroy. Para este módulo solo necesitas cuatro [09:45].

¿Qué hace Route::resource en Laravel? Genera automáticamente las siete rutas de un CRUD. Con except puedes excluir las que no uses, como show, index y destroy.

Dentro del grupo de rutas autenticadas defines:

  • El nombre base del recurso.
  • La clase del controlador con ::class.
  • Las exclusiones except para show, index y destroy.

Así quedan activas únicamente create, store, edit y update, que son las cuatro funciones reales del módulo.

¿Cómo se conecta el botón de editar en el componente LiveWire?

En el componente LiveWire de preguntas, el botón Editar apuntaba a un enlace vacío. Ahora lo enlazas con la sintaxis de llaves dobles a la ruta nombrada edit, pasando como parámetro la pregunta actual.

Con ese cambio, cada botón del listado abre el formulario correspondiente con los datos cargados. Si detectas un error tipográfico en la palabra clave o en el nombre de la carpeta (por ejemplo, una S de más en singular), lo corriges antes de probar.

El resultado: todos los botones de edición funcionan, el formulario se renderiza con la pregunta seleccionada y la base queda lista para construir la lógica de actualización en la siguiente iteración.

¿Te animas a replicar esta estructura en tu propio módulo de foro y compartir cómo organizaste tus vistas reutilizables?