Laravel数据表日期格式不起作用

时间:2017-12-24 11:57:59

标签: php laravel datatable

我正在使用数据表显示包含postingdate列的数据,我需要更改postingdate列的格式,因为我找到了一些关于此的教程并在运行时使用了下面的代码。我收到错误消息,表格没有出现。

错误消息:

  

DataTables警告:table id = users-table - Ajax错误。更多   有关此错误的信息,请参阅http://datatables.net/tn/7

代码:

$users = Checks::select(['details', 'postingdate', 'description', 'amount', 'type', 'slip', 'vendor_id', 'category_id']);

return Datatables::of($users)->editColumn('postingdate', function ($user) {
return $user->postingdate->format('d-m-Y')})->make(true);

3 个答案:

答案 0 :(得分:1)

请尝试以下代码:

$users=Checks::select(['details','postingdate','description','amount','type','slip','vendor_id','category_id']);
return Datatables::of($users)->editColumn('postingdate', function ($user) 
{
    //change over here
    return date('d-m-Y', strtotime($user->postingdate) );
})->make(true);

答案 1 :(得分:0)

试试这个

$users=Checks::select(['details', DB::raw("DATE_FORMAT(checks.postingdate, '%d-%M-%Y %H:%i') as postingdate"),'description','amount','type','slip','vendor_id','category_id']);

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

答案 2 :(得分:0)

要解决此问题,您需要将两个字段返回到UI,一个用于显示,一个用于排序。

控制器

return Datatables::of(User::with('roles')->get())
            ->editColumn('created_at', function ($user) {
                return [
                    'display' => Carbon::parse($user->created_at)->format('d/m/Y'),
                    'timestamp' => $user->created_at->timestamp
                ];
            })
            ....

UI

          columns: [
                    {data: 'id', name: 'id', visible: false},
                    {data: 'name', name: 'name', orderable: true},    
                    {
                        name: 'created_at.timestamp',
                        data: {
                            _: 'created_at.display',
                            sort: 'created_at.timestamp'
                        }
                    },
                ],

在用户界面中,created_at是editColumn的第一个参数的名称