我正在使用数据表显示包含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);
答案 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的第一个参数的名称