Adquiere este curso para tener acceso a todas las lecciones
Comprar curso136. Editar post
En este capítulo, descubre cómo editar un post en Laravel 10. Aprende cómo utilizar el generador de scaffolding de Laravel para crear una vista edit y cómo personalizar la vista para tus necesidades.
3 comentarios
Inicia sesión para comentar
Comentarios:
-
Victor Arana Flores hace 1 año Destacado
Para editar un post en Laravel 10, se pueden seguir los siguientes pasos:
- Crear una ruta en el archivo routes/web.php que apunte a un controlador para manejar la edición del post. Por ejemplo:
Route::get('/posts/{post}/edit', 'PostController@edit')->name('posts.edit');
2. En el controlador PostController, crear el método edit para obtener el post que se desea editar y cargar la vista edit con los datos del post. Por ejemplo:
public function edit(Post $post) { return view('posts.edit', compact('post')); }
3. Crear una vista edit en la carpeta resources/views/posts con un formulario que permita editar los datos del post. Por ejemplo:
@extends('layouts.app') @section('content') <div class="container"> <h1>Edit Post</h1> <form method="POST" action="{{ route('posts.update', $post) }}"> @csrf @method('PUT') <div class="form-group"> <label for="title">Title</label> <input type="text" class="form-control" id="title" name="title" value="{{ old('title', $post->title) }}"> </div> <div class="form-group"> <label for="body">Body</label> <textarea class="form-control" id="body" name="body">{{ old('body', $post->body) }}</textarea> </div> <button type="submit" class="btn btn-primary">Save Changes</button> </form> </div> @endsection
4. Crear una ruta en el archivo routes/web.php que apunte a un controlador para actualizar los datos del post en la base de datos. Por ejemplo:
Route::put('/posts/{post}', 'PostController@update')->name('posts.update');
5. En el controlador PostController, crear el método update para actualizar los datos del post en la base de datos y redirigir al usuario a la vista del post actualizado. Por ejemplo:
public function update(Request $request, Post $post) { $validatedData = $request->validate([ 'title' => 'required|max:255', 'body' => 'required', ]); $post->update($validatedData); return redirect()->route('posts.show', $post); }
Con estos pasos, se podrá editar un post en Laravel 10.
-
Jorge Gatica hace 7 meses
Hola Víctor, con respecto al problema que mencionas que ocasiona al cambiar el slug. Que decías que te provocaba errores 404. Esto podria solucionarlo, indicandole al modelo que en vez de buscar por id, busque por el campo slug. Con esta funcion lo haces desde el modelo.
Espero que te sirva y a quien lo quiera probar
public function getRouteKeyName() { return 'slug'; }
-
Yean Martinez hace 1 año
Buen Dia Victor, porfa agradezco su colaboración para la solución de este inconveniente que no logro solucionar, tengo una tabla con un campo ‘documento’ que es único, para la creación no hay problemas y se ejecutan las reglas de validación si intento ingresar un numero de documento repetido, pero el inconveniente viene cuando yo quiero realizar alguna actualización de datos de la persona, ya que al enviar el formulario de Update me genera error que el documento ya existe y no actualiza los datos.
Aqui estan los datos de mi Controller:
public function update(Request $request, Atleta $atleta)
{
$request->validate([
'documento' => 'required|integer|unique:atletas,documento',
'primer_nombre' => 'required|string|max:20',
'segundo_nombre' => 'string|max:20',
'primer_apellido' => 'required|string|max:20',
'segundo_apellido' => 'string|max:20',
'fecha_nac' => 'required|date',
'edad' => 'required|integer',
'telefono' => 'required|string|max:12',
'email' => 'required|string',
'sexo' => 'required|string|max:9',
'categoria_id' => 'required|integer|exists:categorias,id',
'direccion' => 'required|string',
'observaciones' => 'required'
]);
$atleta->update($request->all());
return redirect()->route('atletas.edit', $atleta);
}
Que se tendria que hacer para que no genere este error al intentar actualizar y sea el mismo documento. Pero tambien teniendo en cuenta que si ingreso al formulario de actualización y modifico el documento por alguno otro que exista en la base de datos me genere el error de validación.
Muchas Gracias de antemano y espero su pronta respuesta
-
Victor Arana Flores hace 1 año
Hola estimado Yean, si recien estas aprendiendo te recomendaría que veas los capitulos sin saltartelos. Ya que en esta misma lección donde has hecho la pregunta, respondo a tu incoveniente.
-