使用ajax删除数据的帖子ID显示控制器路由中缺少必需的参数

问题描述 投票:0回答:1

我正在尝试通过数据表删除按钮删除数据。但我收到错误。

我已创建路线为::

Route::resource('dealers', DealerController::class);

我的控制器功能::

public function destroy($id ): JsonResponse
    {
        // removed the code block
    }

php artisan 路线的输出:列表

DELETE          dealers/{dealer} ........... dealers.destroy › Dealers\DealerController@destroy

blade php页面的ajax代码块

$(document).on('click','.deleteProduct', function(e){
 e.preventDefault();
 var id = $(this).data("id");
 confirm("Are You sure want to delete?");
     $.ajax({
         type: "POST",
         url:  "{{ route('dealers.destroy') }}"+'/'+id,
        //  data: data,
        //  dataType: 'json',
         success: function (data) {
          var oTable = $('#dealerTabel').dataTable();
          oTable.fnDraw(false);
         },
         error: function (data) {
             console.log('Error:', data);
         }
     });

当我尝试加载页面时,它显示错误为::

Missing required parameter for [Route: dealers.destroy] [URI: dealers/{dealer}] [Missing parameter: dealer].
php jquery ajax laravel
1个回答
0
投票

问题出在您的 AJAX 请求上。您正在使用

{{ route('dealers.destroy') }}
生成 URL,但您没有正确地将
id
附加到 URL。

发出 AJAX 请求时,您需要在 URL 中包含 id。修改您的 AJAX 代码如下:

$(document).on('click','.deleteProduct', function(e){
    e.preventDefault();
    var id = $(this).data("id");
    confirm("Are You sure want to delete?");
    $.ajax({
        type: "DELETE", // Use DELETE method for deleting
        url:  "{{ route('dealers.destroy', $id) }}", // Pass the id to the route
        //  data: data,
        //  dataType: 'json',
        success: function (data) {
            var oTable = $('#dealerTabel').dataTable();
            oTable.fnDraw(false);
        },
        error: function (data) {
            console.log('Error:', data);
        }
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.