如何解决无法在查询构建器 yajra 数据表 Laravel 中使用 get() 方法
我有显示用户任务的数据表。我已经为 KPI 表创建了过滤器来显示特定的 KPI(是或否)。问题是当我使用 get() 方法时,我无法使用下拉列表进行过滤,如果我使用 latest() $data = Post::where('user_id',Auth::user()->uid)->latest();
替换 get() 或将其删除 $data = Post::where('user_id',Auth::user()->uid);
,我的数据表无法排序表头中带有排序按钮的数据。这是我的代码
我的控制器
public function MyTask(Request $request)
{
if ($request->ajax()) {
$data = Post::where('user_id',Auth::user()->uid)->get();
return Datatables::of($data)
->addindexColumn()
->addColumn('action',function ($row) {
...
})->addColumn('target_selesai',function ($row) {
...
})->addColumn('kpi',function ($row) {
...
})->addColumn('progress',function ($row) {
...
})->addColumn('status',function ($row) {
...
})->filter(function ($instance) use ($request) {
if ($request->get('kpi') == '0' || $request->get('kpi') == '1') {
$instance->where('kpi',$request->get('kpi'));
}
if (!empty($request->get('search'))) {
$instance->where(function ($w) use ($request) {
$search = $request->get('search');
$w->orWhere('title','LIKE',"%$search%")
->orWhere('content',"%$search%")
->orWhere('target_selesai',"%$search%")
->orWhere('status',"%$search%")
->orWhere('target',"%$search%")
->orWhere('realisasi',"%$search%");
});
}
})->rawColumns(['action','progress','status'])
->make(true);
}
return view('task.mytask');
}
我的观点
var table = $('.data-table').DataTable({
paging: true,info: true,autoWidth: false,responsive: true,columnDefs: [{
"targets": [0,2,3,4,5,6],"className": "text-center",},],processing: true,serverSide: true,ajax: {
url: "{{ route('my.task') }}",data: function(d) {
d.kpi = $('#filter-kpi').val(),d.search = $('input[type="search"]').val()
}
},// a
columns: [{
...
]
});
$('#filter-kpi').change(function() {
table.draw();
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。