Closed franciscoarnaldog closed 4 months ago
Does it pass this code if ($request->ajax()) {
? This is Laravel framework built-in function.
yes, the return Datatables hangs up. Dunno why, was working after the migration.
The code looks fine, any error dump?
Nop nothing. Was expecting an exception in logs but none.
Have you tried checking apache/nginx error logs?
nginx says connect reset by peer
2024/05/23 13:04:15 [error] 44652#44652: *65 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: xxx.local, request: "GET /principals-dt?draw=2&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=principals.id&columns%5B1%5D%5Bdata%5D=ingreso_id&columns%5B1%5D%5Bname%5D=principals.ingreso_id&columns%5B2%5D%5Bdata%5D=fecha_factura&columns%5B2%5D%5Bname%5D=principals.fecha_factura&columns%5B3%5D%5Bdata%5D=fecha_vto_pago&columns%5B3%5D%5Bname%5D=principals.fecha_vto_pago&columns%5B4%5D%5Bdata%5D=tipo_comprobante&columns%5B4%5D%5Bname%5D=principals.tipo_comprobante&columns%5B5%5D%5Bdata%5D=nro_comprobante&columns%5B5%5D%5Bname%5D=principals.nro_comprobante&columns%5B6%5D%5Bdata%5D=rubro.nombre&columns%5B6%5D%5Bname%5D=&columns%5B7%5D%5Bdata%5D=rubro.tipo_costo&columns%5B7%5D%5Bname%5D=&columns%5B8%5D%5Bdata%5D=proveedor.nombre&columns%5B8%5D%5Bname%5D=&columns%5B9%5D%5Bdata%5D=vehiculo.id&columns%5B9%5D%5Bname%5D=&columns%5B10%5D%5Bdata%5D=vehiculo_ptj&columns%5B10%5D%5Bname%5D=&columns%5B11%5D%5Bdata%5D=detalle&columns%5B11%5D%5Bname%5D=principals.detalle&columns%5B12%5D%5Bdata%5D=importe_neto_cf&columns%5B12%5D%5Bname%5D=principals.importe_neto_cf&columns%5B13%5D%5Bdata%5D=importe_costo_imp&columns%5B13%5D%5Bname%5D=principals.importe_costo_imp&columns%5B14%5D%5Bdata%5D=importe_impue_cf&columns%5B14%5D%5Bname%5D=principals.importe_impue_cf&columns%5B15%5D%5Bdata%5D=importe_seguro_cf&columns%5B15%5D%5Bname%5D=principals.importe_seguro_cf&columns%5B16%5D%5Bdata%5D=importe_prorrateado_2_cf&columns%5B16%5D%5Bname%5D=principals.importe_prorrateado_2_cf&columns%5B17%5D%5Bdata%5D=importe_desc_cf&columns%5B17%5D%5Bname%5D=principals.importe_desc_cf&columns%5B18%5D%5Bdata%5D=importe_costo_cf&columns%5B18%5D%5Bname%5D=principals.importe_costo_cf&columns%5B19%5D%5Bdata%5D=importe_final_cf&columns%5B19%5D%5Bname%5D=principals.importe_final_cf&columns%5B20%5D%5Bdata%5D=fecha_gasto&columns%5B20%5D%5Bname%5D=principals.fecha_gasto&columns%5B21%5D%5Bdata%5
[2024-05-24 13:56:35] production.DEBUG: 127.0.0.1 @ Admin : Yajra\DataTables\DataTables::eloquent(00000119): {}
[2024-05-24 13:56:36] production.DEBUG: 127.0.0.1 @ Admin : Yajra\DataTables\DataTables::eloquent(00000119): {}
Might be an issue in the config? Try deleting all existing datatables config if any.
Sorry for the delay, it seems that it was a circular table reference, I commented Company and it worked!... I thought I had already tried this but without luck... after correcting discrepancies between branches, I checked the references one by one and identified which one was causing problems... apologies.
...
public function indexDataTables() //Request $request)
{
$this->authorize('index', Principal::class);
$query = Principal::with(
'user',
'rubro',
'proveedor',
'vehiculo',
'sucursal',
// 'empresa', // << circular reference.
'unidad_operativa',
'centro_costo',
'origen_gasto',
'importacion',
'prorrateo2'
)
// ->select('principals.*')
->orderBy('updated_at', 'DESC');
return DataTables::eloquent($query)
->editColumn('id', function (Principal $p) {
return '<a href="' . url('/') . '/principals/' . $p->id . '">' . $p->id . '</a>';
})
...
Glad you figured it out, Thanks!
Summary of problem or feature request
After upgrade a legacy project from Laravel 5.4 to 8 (cuz php 7.4) the datatables ajax route stop working. It's hitted but never return
recv() failed (104: Connection reset by peer) while reading response header from upstream
on my local nginxThe ajax request doesn't return any value and timeout.
DataTables warning: table id=principalsTable - Ajax error. For more information about this error, please see http://datatables.net/tn/7
Code snippet of problem
js:
route:
Route::get('principals-dt', 'PrincipalsController@getDataTable');
controller:
System details
The ajax stop working in the legacy server (Apache) and in my machine (nginx).