【问题标题】:Yajra data tables order by columnYajra 数据表按列排序
【发布时间】:2020-04-06 14:25:54
【问题描述】:

我正在使用 yajra/laravel-datatables 插件在 laravel 中创建数据表。这是我的代码。

$data = MyModel::latest()
                ->where('subject', 3)
                ->get();

return Datatables::of($data)->make(true);

这是我的js代码

var table = $('#empTable').DataTable({
        processing: true,
        serverSide: true,
        serverMethod: 'post',
        ajax: "{{ url('my url') }}",
        columns: [
            {data: 'reference_no', name: 'reference_no'}
        ]
    });

但不幸的是,数据没有排序,我没有首先获取最新数据('id''desc')。如果有人有解决方案,那将是一个很大的帮助

【问题讨论】:

  • 问题很可能出现在您初始化数据表的 javascript 代码中。您能否将其添加到您的问题中。
  • @Remul 当然我添加了
  • 您可以尝试将order: [], 添加到您的javascript,这样dataTable 不会在第一列上排序,因此会以您从控制器返回的方式显示它。
  • @Remul 试过的命令:[[ 1, "desc" ]] bud 没用 :'(
  • @Remul 抱歉,它起作用了,如果您可以将其添加为我可以接受的答案。

标签: laravel yajra-datatable


【解决方案1】:

您可以覆盖 dataTable 中的默认排序以获得所需的结果:

var table = $('#empTable').DataTable({
    processing: true,
    serverSide: true,
    serverMethod: 'post',
    order: [],
    ajax: "{{ url('my url') }}",
    columns: [
        {data: 'reference_no', name: 'reference_no'}
    ]
});

默认情况下,dataTable 将按第一列对表格进行排序,因此在您的情况下为 reference_no,但由于您提供数据的初始排序,您可以将默认排序设置为空数组。

【讨论】:

    猜你喜欢
    • 2020-07-05
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2014-02-02
    • 2016-09-13
    • 2021-01-26
    相关资源
    最近更新 更多