Los valores de la columna id
son incorrectos cuando id
no se solicita desde el lado de javascript.
El problema solo aparece cuando no menciono la columna id
en la configuración de tablas de datos columns
.
$('#table').DataTable({
columns: [
{ data: 'id', name: 'id' }, // ----> Problem appear when i don't mention this column in javascript
{ data: 'user.first_name', name: 'user.first_name' },
...
]
})
En el lado de PHP tengo algo como esto
$students = Student::with(['user', ...]);
return Datatables::of($students)
->addColumn('actions', function ($row)
{
$row->id // ----> Will contain wrong value, it will contain users.id instead of students.id
return $actions;
})
->make(true);
El valor de id
será users.id
lugar de students.id
Creo que esto es un error en el marco de laravel y la solución para solucionarlo es agregar select('students.*')
en su consulta como se documenta aquí .
$students = Student::with(['user', ...])->select('students.*');
return Datatables::of($students)
->addColumn('actions', function ($row)
{
$row->id // ----> Will contain wrong value, it will contain users.id instead of students.id
return $actions;
})
->make(true);
Gracias, está funcionando bien ahora
@yajra , tu respuesta me ayudó, gracias. Sería mejor si eliminara el comentario, ya que en su ejemplo debería ser lo contrario. Contendrá el valor correcto.
Gracias
Comentario más útil
Creo que esto es un error en el marco de laravel y la solución para solucionarlo es agregar
select('students.*')
en su consulta como se documenta aquí .