Laravel Datatable addColumn仅返回一条记录的ID

Laravel Datatable addColumn仅返回一条记录的ID,laravel,yajra-datatable,Laravel,Yajra Datatable,我正在尝试使用Yajra Datatable在我的网站中集成一个Datatable。我能够渲染表,但遇到了问题。在我放置delete选项的addColumn字段中,id只返回单个记录,而不是每个列的特定id 这是我的控制器代码 public function fetchData($manifest_no){ $hwb_data = DB::table('hwb') ->join('manifest_records', 'hwb.id'

我正在尝试使用Yajra Datatable在我的网站中集成一个Datatable。我能够渲染表,但遇到了问题。在我放置delete选项的addColumn字段中,id只返回单个记录,而不是每个列的特定id

这是我的控制器代码

public function fetchData($manifest_no){
            $hwb_data = DB::table('hwb')
                ->join('manifest_records', 'hwb.id', '=', 'manifest_records.hwb_id')
                ->join('consignees', 'consignees.id', '=', 'hwb.client_id')
                ->where('manifest_records.manifest_no', $manifest_no)
                ->get();

        return Datatables::of($hwb_data)
            ->addIndexColumn()
            ->addColumn('action', function($row){
               $idx = $row->id;
                $btn = "<a href='javascript:void(0)' id='delete' data-id='$idx' class='edit btn btn-danger btn-sm'>$idx</a>";
                return $btn;
            })
            ->rawColumns(['action'])
            ->make(true);
    }
每当我渲染数据时,我总是遇到这个问题。操作按钮的值始终为2


我想您必须像这样使用渲染函数,而不是后端函数

在呈现视图之前,还要尝试转储
$row
和dd,以检查$row是否具有所需的正确值

$(function () {
            let table = $('#tableSample').DataTable({
                processing: true,
                serverSide: true,
                ajax: "{{ url("/fetchData/$manifest_no") }}",
                columns: [
                    {data: 'id', name: 'id', 'visible': false},
                    {data: 'created_at', name: 'created_at'},
                    {data: 'hwb_no', name: 'hwb_no'},
                    {data: 's_name', name: 's_name'},
                    {data: 'c_name', name: 'c_name'},
                    {data: 'destination', name: 'destination'},
                    {data: 'dr_no', name: 'dr_no'},
                    {data: 'commodity', name: 'commodity'},
                    {data: 'actual_weight', name: 'actual_weight'},
                    {data: 'tp_cbm', name: 'tp_cbm'},

                    {   data: 'id', 
                        name: 'action',
                        orderable: false,
                        searchable: false,
                        "render": function ( data, type, row, meta ) { 
                            return '<button class="delete btn btn-danger" data-id="'+ data +'"> Delete  </button>'
                        }},
                ]
            });

        });
$(函数(){
let table=$('#tableSample').DataTable({
处理:对,
服务器端:是的,
ajax:{url(“/fetchData/$manifest_no”)},
栏目:[
{data:'id',name:'id','visible':false},
{data:'created_at',name:'created_at'},
{数据:'hwb_no',名称:'hwb_no'},
{数据:'s_name',name:'s_name'},
{data:'c_name',name:'c_name'},
{数据:'目的地',名称:'目的地'},
{数据:'dr_no',名称:'dr_no'},
{数据:'商品',名称:'商品'},
{数据:'实际重量',名称:'实际重量'},
{数据:'tp_cbm',名称:'tp_cbm'},
{数据:'id',
名称:“行动”,
可订购:错误,
可搜索:false,
“呈现”:函数(数据、类型、行、元){
返回“删除”
}},
]
});
});

我想您必须像这样使用渲染函数,而不是后端函数

在呈现视图之前,还要尝试转储
$row
和dd,以检查$row是否具有所需的正确值

$(function () {
            let table = $('#tableSample').DataTable({
                processing: true,
                serverSide: true,
                ajax: "{{ url("/fetchData/$manifest_no") }}",
                columns: [
                    {data: 'id', name: 'id', 'visible': false},
                    {data: 'created_at', name: 'created_at'},
                    {data: 'hwb_no', name: 'hwb_no'},
                    {data: 's_name', name: 's_name'},
                    {data: 'c_name', name: 'c_name'},
                    {data: 'destination', name: 'destination'},
                    {data: 'dr_no', name: 'dr_no'},
                    {data: 'commodity', name: 'commodity'},
                    {data: 'actual_weight', name: 'actual_weight'},
                    {data: 'tp_cbm', name: 'tp_cbm'},

                    {   data: 'id', 
                        name: 'action',
                        orderable: false,
                        searchable: false,
                        "render": function ( data, type, row, meta ) { 
                            return '<button class="delete btn btn-danger" data-id="'+ data +'"> Delete  </button>'
                        }},
                ]
            });

        });
$(函数(){
let table=$('#tableSample').DataTable({
处理:对,
服务器端:是的,
ajax:{url(“/fetchData/$manifest_no”)},
栏目:[
{data:'id',name:'id','visible':false},
{data:'created_at',name:'created_at'},
{数据:'hwb_no',名称:'hwb_no'},
{数据:'s_name',name:'s_name'},
{data:'c_name',name:'c_name'},
{数据:'目的地',名称:'目的地'},
{数据:'dr_no',名称:'dr_no'},
{数据:'商品',名称:'商品'},
{数据:'实际重量',名称:'实际重量'},
{数据:'tp_cbm',名称:'tp_cbm'},
{数据:'id',
名称:“行动”,
可订购:错误,
可搜索:false,
“呈现”:函数(数据、类型、行、元){
返回“删除”
}},
]
});
});

我尝试过,但当我控制台记录数据时它仍然显示我2?尝试控制台.log(行)我尝试过,但当我控制台记录数据时它仍然显示我2?尝试控制台.log(行)