Intento eliminar la copia de seguridad con el método DELETE en Laravel y Axios, pero la solicitud vuelve vacía.
Controlador
/** * Remove the specified resource from storage. * @param Request $request */ public function destroy(Request $request) { return $request->all(); }
Ruta
Route::middleware(['auth'])->prefix('backup')->group(function() { Route::get('/', 'BackupController@index'); Route::delete('/delete', 'BackupController@destroy')->name('backup.delete'); });
Solicitud de Axios
axios.delete(`/backup/delete`,{data: {filename: filename}} ) .then((response)=>{ console.log(response.data) }) .catch((err) => console.error(err.response.data.errors));
¿Cuál es el problema con mi código?
Envía axios el nombre del archivo. Luego, debe buscar en el método de destrucción el nombre del archivo y obtener el modelo de la base de datos.
Ruta
Route::delete('api/delete/{filename}', BackupController@destroy')->name('backup.delete');
Controlador
$model = App\Models\Backup::where('filename', $request->filename)::first(); $model->destroy();
No se recomienda enviar los parámetros a través del cuerpo mediante el método DELETE. Algunos servidores no lo admiten. Sin embargo.
axios.put(`/backup/delete`,{data: {filename: filename}} ) .then((response)=>{ console.log(response.data) }) .catch((err) => console.error(err.response.data.errors));
Route::delete('/delete', 'BackupController@destroy')->name('backup.delete');
Luego puede buscar en su controlador sobre el objeto de solicitud el parámetro (nombre de archivo).