[英]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令牌的讀取請求( GET
和HEAD
)。 相反,應使用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.