LIONEL ROLANDO VAN GRIEKEN
le recomiendo que vean el siguiente link, muestra como borrar registros con un flag para no eliminarlo totalmente de la base de datos
https://laraveles.com/como-borrar-y-restaurar-registros-usando-soft-delete-en-laravel/
Lorena Pena Verdú
Muchas gracias!!!
Daniel Hurtado
El el curso de php avanzado también se explica
Nelly Santiago Morales
Si les causa error el llamar la ruta confirm delet prueben esta linea de codigo.
<Route::get('/expense_reports/{id}/confirmDelete',[ExpenseReportController::class, 'confirmDelete']);>
Carlos Eduardo Gomez García
La función findOrFail es útil para que cuando queremos validar que cierto recurso exista, si no lo encuentra entonces devuelve un error 404 (Not found)
No es común hacer una nueva ruta solo para confirmar el eliminado de un recurso, por lo que podemos aplicar lo que aprendimos en e curso anterior, podemos agregarle este atributo al botón de delete:
onclick="return confirm('¿Realmente desea eliminar este recurso')"
Así hacemos una validación mucho más rápida.
Como último me gustaría comentar que, como práctica y para aprender esta bien usar las funciones de delete para eliminar recursos de la base de datos, sin embargo, es mucho mejor manejar "flags" para indicar si un registro está activo o no, ya que mantener datos en nuestra base de datos puede ser útil a futuro, esto se explica más a detalle en el curso del ORM Eloquent :D!
Ricardo Portillo
Aunque se indico no usar javascript agrego este método que es parecido a otro framework para hacerlo desde la misma columna
<form action="/expense_reports/{{ $expenseReport->id }}" method="post"> @csrf @method('delete') <input class="btn btn-danger" type="submit" name="submit" value="Delete" onclick="return confirm('Do you really want to submit the form?');"/> </form>
Alfredo Rafael Perez Arroyo
Me ha gustado mucho este Curso, Excelente Aportes, Gracias de antemano.
Ignacio Garza
Mis errores 404 no son nada chidos :(
Edward Orlando Hurtado
RT
Rolando Crespo
Sobreescribe el error en la carpeta de layout/ genera un archivo 404.blade.php que puedes modificar a tu gusto,
saludos.
Enrique Garcia Stave
Apuntes: Para el proceso de eliminacion se aplica algo parecido en la vista del index del controlador
Diferente a este proceso, se crea una nueva sentencia de ruta, la cual se hara de manera siguiente:
- Route::get('/vista_principal/{id}/confirmDelete', 'ExpenseReportController@confirmDelete');
Consecuentemente se crea un metodo "confirmDelete" en el controller designado, que va a contener lo siguiente:
- $report = ExpenseReport::find($id); return view('nombreCarpeta.confirmDelete', [ 'report' => $report ]);
Finalmente, para la parte del metodo destroy(), se escribe algo similar a lo del update:
- $report = ExpenseReport::find($id);
- $report->delete();
return redirect('expense_reports');
Para el caso de los edit, podemos usar en lugar de 'find($id)', 'findOrFail($id)' para validar que exista el usuario.
Luis Lazcano
Como se hace este mismo proceso pero con JavaScript
Juan Pablo Arnedo
Hola, yo lo haria usando ajax, puedes buscar como se usa y uno de los campos que solicita es una URL que seria la que creas en el archivo de rutas
Angel Enrique Barrios
aqui el gran Leonidas enseña como
Edwin Rudy Quisbert Montalvo
A que te refieres con 'report' relacionado con $report en la función confirmDelete?
Hector Benitez
ProfesorMe refiero a que buscaremos un reporte de gastos y ese lo mandaremos a la vista para confirmar el delete y despues pasar a la eliminacion real
Edwin Rudy Quisbert Montalvo
gracias
Andrés Felipe Sabogal Ramírez
Woooow, awesome thak you Benites.
Jhonathan Alfonso
It's so easy !
Alfredo Gonzalez
¿Porque la peticion pasa correctamente a la ruta de edicion al solo escribir la url? si se supone que para eso esta el token oculto en el form?
Podria explicarlo por favor
Juan Carlos Raygoza Hernandez
Llego hasta la parte de Updates sin ningun problema pero al momento de hacer DELETE y hacer los movimiento me sigue saliendo el 404 ya revise segun yo mis rutas y esta bien pero ya me perdi.
Route::resource('/gasto_report','GastosReportController'); Route::get('/gasto_report/{$id}/borrar','GastosReportController@borrar');
<a href="/gasto_report/{{$GastosReport->id}}/borrar">Eliminar</a></i>
public function borrar($id) { dd('borrar'.$id); } No puedo sacar el valor
Hasta el momento mi proyecto agrega, edita solamente.
Juan Carlos Raygoza Hernandez
<code> @foreach($GastosReport as $GastosReport) <td>{{$GastosReport->id}}</td> <td>{{$GastosReport->title}}</td> <td><i class="fas fa-edit"><a href="/gasto_report/{{$GastosReport->id}}/edit">Editar</a></i> | <i class="fas fa-trash"> <a href="/gasto_report/{{$GastosReport->id}}/borrar">Eliminar</a></i> </td> </tr> @endforeach </table>
Juan Carlos Raygoza Hernandez
public function borrar($id) { dd('borrar'.$id); }```
Gabriel Alejandro Huitrón Rizo
Hay alguna manera de que al hacer un redirect se envíe un mensaje como 'Borrado/Editado/Agregado exitoso'?
Moisés Cedeño
Juan Ledesma
Hola, no entiendo el funcionamiento del 'report' que se usa por ejemplo en el minuto 5:48. De donde sale?. Gracias XD
Edwin Alberto Guerrero Acosta
se pasa por parametro a la vista desde el metodo confirmDelete del controlador, en el minuto 7:06.
Joseph Alexander Whacheng Barreto
¿Cómo podría hacer para borrarlo con JS?
Lo estoy haciendo así, pero me sale 405 Error - Method Not Allowed
$(document).on('click', '.delete', function (e) { e.preventDefault(); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); var id = $(this).data('id'); Swal.fire({ title: "¿Estás seguro?", type: "warning", confirmButtonColor: '#d33', cancelButtonColor: '#28a745', confirmButtonText: "Sí", showCancelButton: true, cancelButtonText: "No" }).then(function() { $.ajax({ type: "delete", url: "/postulantes/" + id, data: {'id': id}, success: function (data) {} }); }); });
David Andrés Rincón Suárez
En esta carpeta: /vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views, se encuentran todos los archivos personalizados de error, y se pueden ajustar para darles un bonito estilo de presentación, en lugar del fondo gris y la letra plana que se maneja por defecto en Laravel...
Rolando Crespo
No se recomienda que se modifique el /vendor mejor sobreescribe el error en la carpeta de layout/ genera el 404.blade.php o 500.blade.php para que sea custom.
Eduardo Rahn
realmente interesante la demostracion del borrado y la confirmacion con solo Laravel.
Lo logico es usa JS pero es bueno ver que se puede sencillamente hacer a "mano" con Laravel
Jimmy Buriticá Londoño
Muy bien explicado como borrar registros. Se adicionó una página para confirmar si realmente se desea borrar. Es opcional, pero sirve para aprender un poco mas. Gracias.
José Jesús Quilarque
Notas:
Ceamos un fake delete para enviar los datos a traves de una vista, en la que le asignamos el metodo delete que es el que se va a encargar de eliminar los registros a través de la funcion destroy del controlador usando el metodo de laravel delete, ya que destroy se usa cuando se envian muchos $id's.
Para ello creamos una nueva ruta en el archivo web php de tipo get para que pueda obtener los datos.
Paul Cortes
Excelente forma de borrar los datos