簡體   English   中英

刪除Laravel中的多個記錄

[英]Delete multiple records in laravel

只刪除一條記錄,我意識到這個ajax

var borrar = confirm("¿Realmente desea eliminarlo?");
          if (borrar) 
          {
            var token = document.getElementById('token').value;
            $.ajax({
                headers: {'X-CSRF-TOKEN': token},
                dataType: "json",
                data: {radicado: radicado},
                url:   ip+'/eliminarRadicado/delete/'+radicado,
                type:  'get',
                beforeSend: function(){
                    },
                success: function(respuesta){
                    alert(respuesta);
                },
                error: function(xhr,err){ 
                    alert("Error");
                }
            });
          }

它通過$ get發送我刪除文件並運行此路由的記錄的ID:

Route::get('eliminarRadicado/delete/{id}', 'RadicadoController@destroy');

最終由驅動程序執行並執行刪除功能

public function destroy($id)
{
    \App\Radicado::destroy($id);
    return response()->json(['Documento eliminado']);
}

這不像刪除我發送的多個記錄(id)。 有任何想法嗎 ?

您不應該使用GET動詞發送刪除請求。 相反,您應該使用語義正確的DELETE動詞。


使用您當前的方法,發送X-CSRF-TOKEN標頭不會執行任何操作,因為Laravel不會檢查CSRF令牌的讀取請求( GETHEAD )。 相反,應使用DELETE請求將要刪除的所有ID作為參數傳遞,如下所示:

var ids = [1, 10, 17]; // Use your own logic to set the array of the IDs here

$.ajax({
    headers : {'X-CSRF-TOKEN': token },
    dataType: "json",
    data    : { ids: ids },                   // Pass IDs array
    url     : ip + '/eliminarRadicado/delete',
    type    : 'delete',                       // Send a delete request

    beforeSend: function () {
    },

    success: function (respuesta) {
        alert(respuesta);
    },

    error: function (xhr, err) { 
        alert("Error");
    }
});

然后將您的路線定義更改為:

Route::delete('eliminarRadicado/delete', 'RadicadoController@destroy');

destroy控制器方法中,使用通過請求接收的ID數組:

use Illuminate\Http\Request;

...

public function destroy(Request $request)
{
    \App\Radicado::destroy($request->input('ids'));

    return response()->json(['Documento eliminado']);
}

現在,您可以傳遞一個或多個ID的數組,以使用同一請求將其刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM