【发布时间】:2020-07-23 02:58:11
【问题描述】:
Hey Stack Overflow 社区,
我需要有关如何解决我遇到的这个问题的指导。为了清楚起见,我在下面添加了我当前数据表的图像:
我想要做的是,我的表格应该按表格标题的顺序显示每个“客户”。例如,对于拥有 Customer3 和 Customer1 的“Ferb”,显示了两个数据。我想要的是让 customer1 转到“0002”列,而不是完全创建一个新行。
下面是我的功能代码:
public function monitorStatAjax(Request $request){
$monitor_date= strtr($request->monitor_date, '/', '-');
$new_monitor_date = date("Y-m-d", strtotime($monitor_date))." 00:00:00";
$service_calls = ServiceCall::where('appointment_date', $new_monitor_date)
->join('users', 'service_calls.staff_id', '=', 'users.id')
->join('customers', 'service_calls.company_id', '=', 'customers.id')
->join('servicecall_staff_statuses', 'service_calls.id', '=', 'servicecall_staff_statuses.servicecall_id')
->join('statuses', 'statuses.id', '=', 'users.status')
->select('service_calls.id as service_id','servicecall_staff_statuses.servicecall_appointment_time as appointment_time',
'customers.name as company_name','users.name as staff_name','servicecall_staff_statuses.work_status as work_status','statuses.title as status_name')
->orderBy('service_calls.id', 'asc')->get();
return DataTables::of($service_calls)
->addColumn('staff_name', function($data1) {
return $data1->staff_name.' ('.$data1->status_name.')';
})
->addColumn('0001', function ($data1) use($service_calls) {
if ($data1->work_status == null)
{
return $data1->company_name.' <ul id="menu" style="display:flex">
<li style="margin: 0px 8px 0px -30px;"><span class="redstatus"></span></li>
</ul> ';
}
elseif ($data1->work_status == 1)
{
return $data1->company_name.' <ul id="menu" style="display:flex">
<li style="margin: 0px 8px 0px -30px;"><span class="completestatus"></span></li>
<li>Completed</li>
</ul> ';
}
elseif ($data1->work_status == 2)
{
return $data1->company_name.' <ul id="menu" style="display:flex">
<li style="margin: 0px 8px 0px -30px;"><span class="followupstatus"></span></li>
<li style="white-space:nowrap">Follow Up</li>
</ul> ';
}
else
{
return $data1->company_name.' <ul id="menu" style="display:flex">
<li style="margin: 0px 8px 0px -30px;"><span class="yellowstatus"></span></li>
</ul> ';
}
})
->rawColumns(['0001'])
->make(true);
}
我的数据表 Ajax 代码:
$(function () {
var table = $('#table').DataTable({
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
],
processing: true,
serverSide: true,
ajax: {
headers: {
'X-CSRF-TOKEN': "{{ csrf_token() }}"
},
url: '{!! route("admin.monitor.stat.ajax") !!}',
type:"POST",
data: { monitor_date: "{{$new_monitor_date}}",
},
},
order: [[0, "desc"]],
columns: [
{data: 'staff_name', name: 'staff_name'},
{data: '0001', name: '0001'},
],
});
});
希望得到一些反馈。谢谢。
【问题讨论】:
标签: php laravel eloquent datatables yajra-datatable