Die Werte der Spalte id
sind falsch, wenn id
nicht von der Javascript-Seite angefordert wird.
Das Problem tritt nur auf, wenn ich die Spalte id
in der dataTables-Einstellung columns
nicht erwähne.
$('#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' },
...
]
})
Auf der PHP-Seite habe ich so etwas
$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);
Der Wert von id
ist users.id
anstelle von students.id
Ich denke, dies ist ein Fehler im Laravel-Framework. Um dies zu beheben, müssen Sie Ihrer Anfrage select('students.*')
hinzufügen, wie hier dokumentiert.
$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);
Danke, es funktioniert jetzt gut
@yajra , deine Antwort hat mir geholfen, danke. Es wäre besser, wenn Sie den Kommentar entfernen, da dies in Ihrem Beispiel das Gegenteil sein sollte. Es wird den richtigen Wert enthalten.
Vielen Dank
Hilfreichster Kommentar
Ich denke, dies ist ein Fehler im Laravel-Framework. Um dies zu beheben, müssen Sie Ihrer Anfrage
select('students.*')
hinzufügen, wie hier dokumentiert.