Contenido del curso
Configuración base
- 3

Configuración inicial de un foro en Laravel
04:59 min - 4

Personalizar componentes Blade con Tailwind CSS
10:26 min - 5

Primer componente Livewire en Laravel
11:10 min - 6

Categorías dinámicas con Laravel y Blade
06:18 min - 7

Migración y factory para preguntas en Laravel
05:37 min - 8

Cómo listar preguntas con Tailwind y Laravel
07:57 min - 9

Respuestas anidadas y migrate fresh en Laravel
06:26 min
Preguntas
Pregunta
Respuesta
Flujo de trabajo tradicional
Conclusiones
Crear y editar preguntas con un solo formulario
Resumen
Crear preguntas en una comunidad estilo foro con Laravel exige reutilizar lo que ya construiste en clases anteriores: el controlador, las validaciones y los campos del formulario. Aquí verás cómo configurar el método de creación de preguntas reaprovechando la vista de edición y enlazando la relación de usuario con sus preguntas.
Cómo reutilizar el controlador para crear una pregunta
El punto de partida es el controlador. Los métodos de editar y actualizar ya tienen la lógica que necesitas, así que puedes copiarlos y adaptarlos para create y store.
En el método create pasas las categorías a la vista, igual que en edición, pero envías la entidad pregunta como un valor nulo. Eso permite que el formulario funcione tanto para crear como para editar sin duplicar código.
En el método store mantienes la validación que ya existía y disparas la creación desde el usuario autenticado. La instrucción queda así: tomas el usuario logueado, accedes a su relación preguntas y llamas al método de creación con los datos validados. Después rediriges a la ventana principal.
¿Por qué se envía la entidad pregunta al crear si todavía no existe? Porque la vista del formulario espera esa variable en sus campos. Al pasarla como nula, los inputs se renderizan vacíos y el mismo formulario sirve para crear y editar.
Cómo enlazar la relación entre usuario y preguntas
Para que el usuario logueado pueda crear preguntas a través de su relación, necesitas declararla en la entidad User. Ya tenías una relación de uno a muchos con respuestas; ahora agregas otra con preguntas siguiendo el mismo patrón.
Esta relación es la que habilita la sintaxis user()->preguntas()->create() dentro del controlador. Sin ella, el método de creación encadenado no funciona.
- Declara la relación hasMany hacia el modelo de preguntas en la entidad usuario.
- Usa esa relación para crear registros asociados automáticamente al usuario autenticado.
- Mantén la convención de nombres para que Laravel resuelva la llave foránea sin configuración extra.
Con la relación lista, cada pregunta queda vinculada al autor sin que tengas que asignar manualmente el user_id.
Cómo configurar la vista y el botón de preguntar
La vista de creación se construye con un archivo blade.php nuevo. Copias el contenido de la vista de edición y ajustas tres cosas: el título de la página pasa a ser "Preguntar a la comunidad", eliminas la directiva del método PUT porque ya no aplica, y cambias el texto del botón a "Crear pregunta".
El formulario apunta a la ruta store sin necesidad de modificar la dirección, porque el helper de Laravel reconoce si estás creando o editando según el contexto del modelo.
En el componente del botón de preguntar, defines el enlace usando la sintaxis de Blade con doble llave y la ruta nombrada .create. Así el usuario llega al formulario desde cualquier parte del sitio.
¿Cómo se logra que el mismo formulario sirva para crear y editar? Reutilizando los campos en un parcial compartido. La variable de la pregunta llega nula al crear y poblada al editar, y los inputs se comportan según ese valor.
Por qué conviene reutilizar campos entre crear y editar
La técnica de compartir los campos del formulario entre ambas vistas evita duplicar código y reduce errores cuando agregas o modificas un input. Cualquier cambio se refleja al mismo tiempo en creación y edición.
Al probar el flujo completo: el botón "Preguntar a la comunidad" lleva al formulario, seleccionas una categoría, escribes el título y el contenido, envías y la pregunta queda creada bajo tu usuario. Desde ahí puedes visitarla y responder, manteniendo toda la funcionalidad previa intacta.
- Diseñas el formulario una sola vez.
- Agregas el enlace para preguntar desde el componente principal.
- Registras la relación entre usuario y preguntas.
- Ejecutas los métodos create y store en el controlador.
Con estos cuatro pasos cierras el ciclo de creación. ¿Cómo organizas tú la reutilización de formularios en tus proyectos Laravel? Cuéntalo en los comentarios.