Contenido del curso

Manos a la obra con nuestro proyecto

Vistas de creación y edición con formulario compartido

Resumen

Configurar las vistas de creación y edición en Laravel se simplifica cuando reutilizas un mismo formulario para ambas acciones. Aquí aprenderás a estructurar los métodos create y edit del controlador, crear vistas Blade reutilizables y enlazar las rutas correctas para que tu CRUD funcione sin duplicar código.

¿Cómo se configuran los métodos create y edit en el controlador?

Los métodos create y edit cumplen funciones distintas dentro del controlador, pero comparten una lógica parecida: ambos retornan una vista que contendrá el formulario.

El método create simplemente devuelve la vista de creación sin parámetros adicionales. El método edit, en cambio, necesita recibir el registro que quieres modificar y pasarlo a la vista para precargar los datos.

  • create retorna la vista post.create.
  • edit recibe un $post y lo envía a la vista post.edit.
  • Ambos métodos pueden escribirse en una sola línea para mantener el código limpio.

¿Por qué edit necesita un parámetro y create no? Porque editar implica modificar un registro existente, así que debes saber cuál registro vas a alterar. Crear, en cambio, parte de cero.

¿Cómo reutilizar un formulario entre creación y edición?

La clave está en separar el formulario en un archivo parcial que ambas vistas puedan incluir. Así evitas duplicar campos, validaciones y estructura HTML.

¿Qué es una vista parcial en Blade?

Una vista parcial en Laravel es un archivo Blade que funciona como fragmento dentro de otra vista. Se identifica con un guion bajo al inicio del nombre, por ejemplo _form.blade.php. No se renderiza sola, sino que se inserta mediante la directiva @include.

Esta convención del underscore es una práctica común para señalar que el archivo no es una vista completa, sino un componente reutilizable.

¿Cómo se diferencian las rutas en cada formulario?

Aunque el conjunto de controles sea idéntico, el formulario contenedor cambia según la acción:

  • En creación, el formulario apunta a la ruta post.store con método POST.
  • En edición, apunta a la ruta de actualización pasando el $post como parámetro y declarando la intención de editar mediante el método correspondiente.
  • Ambos formularios incluyen el mismo parcial con @include('post._form').

¿Qué hace el guion bajo en _form.blade.php? Indica que es una vista parcial pensada para incluirse dentro de otras vistas, no para renderizarse por sí sola.

¿Cómo enlazar los botones de crear y editar desde el index?

Para que los usuarios accedan a estas vistas, necesitas actualizar la vista index con los enlaces correspondientes. El botón de crear se ubica dentro del H2 principal, y el botón de editar acompaña a cada registro listado.

La ruta de edición sigue el estándar de Laravel: post.edit recibiendo el $post como parámetro. La ruta de creación se invoca con la función route() apuntando al nombre definido en tu archivo de rutas.

¿Cómo aplicar estilos consistentes a los botones del CRUD?

Reutilizar las clases del botón de eliminar para el botón de editar mantiene la coherencia visual. Solo necesitas ajustar el tamaño y los espacios:

  • Cambia el padding horizontal de 4 a 2.
  • Cambia el padding vertical de 2 a 1.
  • Agrega la clase xs para hacerlo más pequeño.
  • Convierte el H2 en un contenedor flex para alinear el título y el botón en esquinas opuestas.

Con flex y la utilidad de espaciado entre elementos, el título queda a la izquierda y el botón a la derecha, sin necesidad de márgenes manuales.

¿Para qué sirve display flex en este caso? Permite alinear el título y el botón en una misma línea, distribuyendo el espacio para que cada elemento quede en una esquina opuesta del contenedor.

¿Qué practicar después de esta configuración inicial?

Antes de pasar a la lógica de guardado y actualización, asegúrate de tener lista la base estructural:

  • Crea el archivo parcial _form.blade.php con los campos del formulario.
  • Construye la vista create.blade.php que incluye el parcial y apunta a post.store.
  • Construye la vista edit.blade.php que incluye el mismo parcial pero apunta a la ruta de actualización con el $post.
  • Ajusta las clases CSS de los botones para mantener consistencia visual.

Este patrón de partial views con @include es una de las prácticas más eficientes en Laravel porque centraliza los cambios: si modificas un campo del formulario, se actualiza tanto en creación como en edición automáticamente.

¿Ya configuraste tus vistas parciales? Cuéntame en los comentarios cómo organizas los formularios reutilizables en tus proyectos Laravel.