Я получаю предупреждение DataTables: таблица id = DataTables_Table_0 - ошибка Ajax. Корректные данные возвращаются в большинстве случаев, но после каждых трех или четырех вызовов это предупреждение появляется без данных, загруженных в таблицы данных. Может кто-нибудь определить, что не так с моим кодом. Я новичок в веб-разработке.
После отладки я обнаружил, что при появлении этого предупреждения не отправляется вызов контроллеру. Консоль говорит 404 Не найдено. Я думаю, что это маршрут не найден. Но тогда почему он загружается в большинстве случаев.
Я также поместил Info ($ request) в контроллер, и журнал Laravel пуст, когда появляется эта ошибка.
Я использую Laravel 5.8.
HTML-код:
<div class="box-body">
<table class="data-table display compact">
<thead>
<tr>
<th width="50px">Action</th>
<th>Date</th>
<th>Ref. No.</th>
<th>Supplier</th>
<th>Inv. No.</th>
<th>Inv. Date</th>
<th>Total</th>
<th>Freight</th>
<th>Discount</th>
<th>Cash</th>
<th>Net Total</th>
<th>Remarks</th>
<th>Status</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
Код Ajax:
var table = $('.data-table').DataTable({
processing: true,
serverSide: true,
ajax: "{{ route('purchlist') }}",
columns: [
{data: 'action', name: 'action', orderable: false, searchable: false, width: "50px"},
{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'},
]
});
и код контроллера:
public function index(Request $request)
{
$branch_id=session()->get('lbranch','0');
if ($branch_id==0){
return redirect()->route('login');
}
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'));
}