我在Laravel 5.8中使用Yajrabox数据表。在我的一种观点中,我收到此错误: DataTables警告:表格ID = DataTables_Table_0-Ajax错误。
问题是出现错误,对控制器的3/4个调用中有1个。因此,我认为这里存在某种比赛情况,但无法弄清楚哪里。
在控制台中返回的错误是“找不到404”,并且网络响应是:
{ "message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\RouteCollection.php",
"line": 179,
"trace": [
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
"line": 634,
"function": "match",
"class": "Illuminate\\Routing\\RouteCollection",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
"line": 623,
"function": "findRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
"line": 612,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
"line": 176,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
"line": 30,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
"line": 57,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 163,
"function": "handle",
"class": "Fideloper\\Proxy\\TrustProxies",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php",
"line": 62,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
"line": 104,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
"line": 151,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
"line": 116,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\public\\index.php",
"line": 55,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "E:\\ZAH\\Laravel\\LaravelDemo\\server.php",
"line": 21,
"function": "require_once"
}
]
}
Ajax代码是:
$(function () {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var table = $('.data-table').DataTable({
processing: true,
serverSide: true,
ajax: "{{ route('purchases.index') }}",
columns: [
{data: 'action', name: 'action', orderable: false, searchable: false, width: "55px"},
{data: 'date', name: 'date'},
{data: 'refno', name: 'refno'},
{data: 'title', name: 'title'},
{data: 'sup_invno', name: 'sup_invno'},
{data: 'sup_invdate', name: 'sup_invdate'},
{data: 'total', name: 'total'},
{data: 'freight', name: 'freight'},
{data: 'discount', name: 'discount'},
{data: 'cash', name: 'cash'},
{data: 'nettotal', name: 'nettotal'},
{data: 'remarks', name: 'remarks'},
{data: 'status', name: 'status'},
// {data: 'detail', name: 'detail'},
]
});
,控制器代码为:
public function index(Request $request)
{
$branch_id=session()->get('lbranch','0');
if ($branch_id==0){
return response()->json(['errors'=>'Branch not selected.']);
}
if ($request->ajax()) {
$data = DB::table('purchases')
->where('purchases.branchid',$branch_id)
->where('accounts.branchid',$branch_id)
->leftjoin('accounts','purchases.account_code','=','accounts.code')
->select('purchases.*',
DB::raw('(CASE
WHEN purchases.posted = "1" THEN "Posted"
ELSE "Unposted"
END) AS status'),
'accounts.title')
->latest()->get();
return Datatables::of($data)
->addIndexColumn()
->addColumn('action', function($row){
$btn = '<a href="javascript:void(0)" data-toggle="tooltip" data-id="'.$row->id.'" data-original-title="Edit" class="edit btn btn-primary btn-sm editPurchase"><i class="fa fa-edit"></i></a>';
$btn = $btn.' <a href="javascript:void(0)" data-toggle="tooltip" data-id="'.$row->id.'" data-original-title="Delete" class="btn btn-danger btn-sm deletePurchase"><i class="fa fa-trash"></i></a>';
return $btn;
})
->rawColumns(['action'])
->make(true);
}
return view('purchases',compact('purchases'));
}