laravel - yajra Datatables 过滤并排序不在数据库中的数据
问题描述
在 yajra/datatables 中有没有办法过滤和排序不在数据库中的数据?我创建了一个带有 addColumn 的列,它可以在 2 个日期之间产生差异,它工作正常,但我无法使用 DataTable 的搜索和排序功能。有好心人可以给我小费吗?
这是Controller中的源代码
public function TasksData(){
return DataTables::of(Task::query())
->editColumn('id', function(Task $task) {
$link='';
$link .= '<a href="#">'.$task->id.'</a>';
return $link;
})
->editColumn('task_id', function(Task $task) {
return $task->Task->name;
})
->editColumn('reception_date', function(Task $task) {
$date = '';
$date .= (new Carbon\Carbon($task->reception_date))->format('d/m/Y');
return $date;
})
->filterColumn('reception_date', function ($query, $keyword) {
$query->whereRaw("DATE_FORMAT(reception_date,'%d/%m/%Y') like ?", ["%$keyword%"]);
})
->editColumn('fullfilment_request', function(Task $task) {
$date = '';
$date .= (new Carbon\Carbon($task->fullfilment_request))->format('d/m/Y');
return $date;
})
->filterColumn('fullfilment_request', function ($query, $keyword) {
$query->whereRaw("DATE_FORMAT(fullfilment_request,'%d/%m/%Y') like ?", ["%$keyword%"]);
})
->addColumn('days', function(Task $task) {
$date = '';
$reception = Carbon\Carbon::parse($task->reception_date);
$fullfilment = Carbon\Carbon::parse($task->fullfilment_request);
$date .= $reception->diffInDays($fullfilment, false);
return $date;
})
->setRowClass(function (Task $task) {
$date = '';
$reception = Carbon\Carbon::parse($task->reception_date);
$fullfilment = Carbon\Carbon::parse($task->fullfilment_request);
$date .= $reception->diffInDays($fullfilment, false);
return ($date < 7 && $date == 1) ? 'bg-warning' : (($date < 0 && $date < 3) ? 'bg-danger' : '');
})
->rawColumns(['id','task_id','reception_date','fullfilment_request','days'])
->make(true);
}
解决方案
推荐阅读
- css - CSS 转换在 IE 11 中不起作用
- javascript - 从动态文本区域获取价值
- linux - rm -rf 和 rm -r 有什么区别?
- angular - *ngFor="let.." 中的 Angular 2“资源 URL 上下文中使用的不安全值”
- c# - CS1503 C# 参数 1:无法从“Project.Vector2”转换为“System.Predicate”
" - javascript - 是否可以更改本地 URL
- laravel - 状态:405,状态文本:“方法不允许”,在 axios .post laravel
- spring-boot - 在 docker 容器上运行 ConfigServer 和 EurekaServer 时无法获取配置文件
- javascript - 如何让 P5JS 线在函数 mousePressed() 上滑动到新位置
- c# - System.Drawing 中不存在图形