用于在laravel中使用的yajra数据表中无法排序的orderColumn

问题描述

OrderColumn不适用于根据updated_at对列表进行排序,但是不起作用。

这是我看到的代码

$product = Product::query()->get();

return Datatables::of($product )
            ->orderColumn('updated_at','DESC')
            ->make(true);

JavaScript代码

<script>
        $(document).ready(function(){
            var columns = [
                { 
                    data: 'name',name: 'name',searchable: true 
                },columns.push({
                    data: 'action',name: 'action',orderable: false,searchable: "false",className: "text-center"
                });
            $('#product-table').DataTable({  
                pageLength: 25,processing: true,serverSide: true,ajax: {
                    url: '{{ route('products.dt') }}',},columns: columns,});                                                           
        });
    </script>

解决方法

问题在于JQuery Datatables在接收到数据后正在执行自己的排序。 因此,服务器上的排序将被忽略。

我遇到了相同的问题,但尚未找到解决方案。 我正在考虑添加一个额外的隐藏列来对数据进行排序,但这也不是一个很好的解决方案。