Laravel: Eliminar registros (parte 17)
Archivos:
- routes/web.php
- CursoController.php
Crearemos una ruta de tipo delete, que apunte a una url llamada curso.destroy.
Route::delete('cursos/{curso}',[CursoController::class, 'destroy'])->name('cursos.destroy');
Crearemos un método destroy() en nuestro controlador. Como se está mandando información por la url, lo rescatamos en el controlador.
public function destroy(Curso $curso) {
$curso->delete();
}
Añadiremos un botón eliminar en la vista show dentro de un formulario. El formulario tendrá la directiva method con el método del mismo (que no es post, sino delete) y el token de seguridad, además de que en el action pasaremos la nueva ruta creada con el parámetro curso. En la vista show:
<form action="{{route('cursos.destroy',$curso)}}" method="POST">
@csrf
@method('delete')
<button type="submit">Eliminar</button>
</form>
Tenemos que pedirle al método destroy que nos redirija para que el formulario no muestre una página en blanco,
public function destroy(Curso $curso) {
$curso->delete();
return redirect()->route('cursos.index');
}
Recursos:
Enlace de Youtube: https://www.youtube.com/watch?v=3uUW1IviXns&t=3s