laravel如何在yajra数据表中按创建日期排序

时间:2020-03-24 17:37:56

标签: jquery laravel datatable

我想按创建日期对数据表进行排序,同时以特殊格式显示日期 我尝试了下面的代码,但是没有用,问题是我可以显示日期,但是像D d M-Y格式的文本一样,我需要将日期排序为日期而不是文本

控制器

        ->addColumn('created_at', function ($data) {
                       return [
                               'display' => date('D d M-Y', strtotime($data->created_at)),
                               'timestamp' => ($data->created_at)
                           ];
                          })

jquery:

            { name: ' order_date', data: { '_': ' order_date.display', 'sort': ' order_date.timestamp' 
            } }

2 个答案:

答案 0 :(得分:0)

使用js中的顺序。

  order: [[ 1, 'desc' ]],

其中1是列位置。

答案 1 :(得分:0)

请按照以下步骤解决问题

控制器

  return Datatables::of($data)
            ->addIndexColumn()
            ->editColumn('created_at', function ($user) {
                return [
                    'display' => e($user->created_at->format('m/d/Y')),
                    'timestamp' => $user->created_at->timestamp
                ];
            })
            ->filterColumn('created_at', function ($query, $keyword) {
                $query->whereRaw("DATE_FORMAT(created_at,'%m/%d/%Y') LIKE ?", ["%$keyword%"]);
            })
            ->make(true);

Js

columns: [
        {
            data: 'index',
            defaultContent: '',
            orderable: false,
            searchable: false,
            render: function (data, type, row, meta) {
                return meta.row + meta.settings._iDisplayStart + 1; //auto increment
            }
        },
        {data: 'site_name', name: 'site_name'},
        {data: 'site_url', name: 'site_url'},
        {data: 'key', name: 'key', defaultContent: "-"},
        {
            data: 'created_at',
            type: 'num',
            render: {
                _: 'display',
                sort: 'timestamp'
            }
        },
        {data: 'status', name: 'status'},
        {data: 'action', name: 'action', orderable: false, searchable: false},
    ],
   
    order: [[4, "DESC"]] //column indexes is zero based