Creación de formularios de edición con Laravel

Clase 21 de 25Curso de Laravel

Resumen

Editar contenidos es fundamental para mantener la calidad y precisión de cualquier aplicación web. En Laravel, este proceso sigue un flujo lógico que facilita el control y manejo de datos. Entender cómo editar preguntas permite no solo personalizar la información, sino mejorar considerablemente la experiencia del usuario final.

¿Qué pasos básicos necesitamos para editar preguntas en Laravel?

Al editar preguntas en tu proyecto Laravel, sigue un flujo sencillo que involucra:

  1. Crear una ruta específica, por ejemplo:

php preguntas.edit

  1. Generar un método en el controlador para mostrar el formulario:

php public function edit($id) { $pregunta = Pregunta::findOrFail($id); $categorias = Categoria::all(); return view('preguntas.edit', compact('pregunta', 'categorias')); }

  1. Construir una vista que reutilice componentes del formulario de creación.

¿Cómo recuperar información en el formulario de edición?

Al momento de abrir el formulario de edición, es conveniente recuperar la información de la base de datos directamente en los campos del formulario. La técnica sencilla es emplear condiciones simples que recuperen datos o muestren un campo vacío si no hay información:

value="{{ old('titulo', $pregunta->titulo ?? '') }}"

Esto significa: toma primero el valor viejo si existe; si no, utiliza el título actual o devuelve un valor vacío si tampoco existe.

¿Qué lógica utilizar con listas desplegables como categorías?

Con listas desplegables es clave recuperar correctamente la información guardada anteriormente, especialmente al editar. Puedes utilizar una lógica similar:


Esto permite indicar al usuario qué opción fue seleccionada previamente, facilitando la edición.

¿Cómo actualizar la información correctamente?

Luego de recuperar y mostrar información, la actualización también utiliza un método explícito en el controlador:

public function update(Request $request, Pregunta $pregunta) {
    $request->validate([
        'category_id' => 'required|exists:categorias,id',
        'titulo' => 'required|max:255',
        'descripcion' => 'required'
    ]);

    $pregunta->update($request->only(['category_id', 'titulo', 'descripcion']));

    return redirect()->route('preguntas.index');
}

Este método:

  • Valida previamente la información.
  • Actualiza directamente en la base de datos mediante un método sencillo de Laravel.

Completar estos pasos asegura un proceso robusto para revisar, corregir y mejorar continuamente el contenido en Laravel.

¿Tienes dudas sobre cómo llevar a cabo este proceso en tu proyecto? Deja tu comentario y sigamos aprendiendo juntos.