Contenido del curso
Diseño de un foro
- 5

Flujo completo de Laravel: ruta, controlador, modelo y vista
07:55 min - 6

Diseño home en Laravel con Tailwind CSS
09:48 min - 7

Desarrollo de página de detalles con rutas dinámicas en Laravel
07:43 min - 8

Creación de componentes Blade para plantillas reutilizables en Laravel
07:11 min - 9

Pregunta con respuestas dinámicas en Laravel
05:19 min - 10

Relaciones polimorfas para comentarios en Laravel
06:33 min
Livewire
Optimización
CRUD
Detalles finales
Formulario de edición con rutas edit y update
Resumen
Editar registros en Laravel implica activar dos rutas (edit y update), reutilizar los campos del formulario de creación y precargar la información existente para que el usuario pueda modificarla. Si ya construiste el flujo de creación, este patrón te resultará familiar y consolidará tu entendimiento de cómo Laravel maneja el ciclo completo de un recurso.
¿Cómo se conecta el botón editar con la ruta del controlador?
El punto de partida es el botón Editar dentro de la vista show de la pregunta. Ahí registras la ruta preguntas.edit y le pasas la pregunta con la que estás trabajando en ese momento.
Cuando haces clic, Laravel te avisa si el método aún no existe. Eso es justamente la pista para abrir el controlador de preguntas y crear el nuevo método edit, que hace una consulta explícita, recupera las categorías y retorna la vista junto con la pregunta y las categorías.
¿Qué hace el método edit en Laravel? Recupera el registro específico desde la base de datos y lo envía a una vista con un formulario precargado, listo para que el usuario modifique los campos.
¿Por qué necesitas dos rutas distintas para editar?
En Laravel, editar un recurso siempre usa dos rutas que trabajan en pareja:
edit: muestra el formulario con la información actual del registro.update: recibe los datos enviados y ejecuta la actualización en la base de datos.- Ambas siguen el mismo ciclo que ya trabajaste en la creación, solo que apuntan a un registro existente.
Este patrón se repite porque separa la visualización de la acción, algo clave para mantener el código ordenado.
¿Cómo crear la vista edit.blade.php reutilizando campos?
La vista de edición se parece muchísimo a la de creación, así que conviene reutilizarla. Dentro de resources/views/preguntas, creas el archivo edit.blade.php y pegas la estructura base.
Luego apuntas el form a la ruta de actualización pasando la pregunta actual. Aquí viene la parte interesante: los campos de formulario que ya construiste en la clase anterior se reutilizan tal cual, lo que demuestra el valor de tener componentes bien hechos desde el inicio.
¿Cómo precargar los valores actuales en el formulario?
Para que el formulario muestre el contenido existente al editar, ajustas la lógica de los campos reutilizables. La modificación ocurre en el helper old():
- Si
oldno tiene nada, entonces usa el valor del campo específico que le pasas (por ejemplo, el título de la pregunta). - Aplicas la misma lógica para la descripción.
- Para el
category_id, también consultas la pregunta y recuperas su categoría asociada.
El detalle clave: al crear una pregunta no existe ningún registro previo, así que usas el operador ?? (null coalescing) para decirle a Laravel que, si no hay información, no pase nada. Así el mismo campo sirve para crear y para editar sin romperse.
¿Para qué sirve el operador ?? en los formularios de Laravel? Permite mostrar un valor por defecto cuando la variable no existe, evitando errores cuando el mismo componente se usa tanto en creación como en edición.
¿Cómo implementar el método update en el controlador?
En app/Http/Controllers, abres el controlador de preguntas y desarrollas un método parecido a store, pero con una diferencia importante: recibe la solicitud (request) y también la pregunta que se quiere editar.
El flujo dentro del método sigue este orden:
- Consulta la pregunta que llega como parámetro.
- Valida que la categoría exista, que el título cumpla las restricciones de longitud y que la descripción sea válida.
- Si todo se cumple, actualiza los campos
category_id,titleydescription. - Redirecciona al usuario a la vista correspondiente.
Este método consolida varias buenas prácticas: validación previa, asignación controlada de campos y redirección posterior. Tu sistema va madurando clase a clase porque ya no escribes lógica suelta, sino flujos completos.
¿Qué resultado obtienes al probar la edición?
Al hacer clic en Editar, ves el formulario con la categoría, el título y la descripción precargados. Cambias cualquiera de esos valores, presionas Actualizar y la vista refleja inmediatamente los nuevos datos. También puedes cambiar la categoría desde el mismo formulario y se actualiza sin problema.
Con esto, tu foro permite que los usuarios corrijan o mejoren sus preguntas, lo que eleva muchísimo la experiencia de uso. Aplica este mismo patrón en tu blog y cuéntame en los comentarios qué ajustes hiciste para adaptarlo a tu propio modelo.