Laravel-datatables: Falscher ID-Spaltenwert

Erstellt am 9. Dez. 2016  ·  3Kommentare  ·  Quelle: yajra/laravel-datatables

Zusammenfassung des Problems oder der Funktionsanforderung

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

Systemdetails

  • Betriebssystem
  • PHP-Version: 5.6
  • Laravel Version 5.3.26
  • Laravel-Datatables 6.22.5
documentation question

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.

$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);

Alle 3 Kommentare

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen