Alles funktioniert auf folgende Code feinen Benutzer anmeldet holen:Laravel Datentabelle ungültig JSON Antwort
js:
<script>
$(document).ready(function() {
var table =$('#systemLogs').DataTable({
responsive: true,
processing: true,
serverSide: true,
"language": {
"url": "/datatables/media/plug-in/Persian.json"
},
ajax: '{!! url('/admin/systemLogs/data/systemLogsDataTable') !!}',
columns: [
{ data: 'name', name: 'name' },
{ data: 'message_text', name: 'message_text' },
{ data: 'remote_addr', name: 'remote_addr' },
{ data: 'log_created_at', name: 'management_logs.created_at' },
{ data: 'log_updated_at', name: 'management_logs.updated_at' },
]
});
});
</script>
Routen:
Route::get('/systemLogs/data/systemLogsDataTable','[email protected]');
public function systemLogsDataTable()
{
$logs= ManagementLog::select('management_logs.message_text','management_logs.remote_addr','management_logs.created_at as log_created_at','management_logs.updated_at as log_updated_at','managements.name')->leftJoin('managements','management_logs.management_id','=','managements.id');
return Datatables::of($logs)->make(true);
}
Es funktioniert gut für mich, aber wenn ich will um nur 2 Felder aus der Datenbank zu holen, gibt es mir
DataTables-Warnung: Tabellen-ID = systemLogs - ungültige JSON-Antwort.
aber manchmal wird es in Ordnung funktionieren.
<script>
$(document).ready(function() {
var table =$('#systemLogs').DataTable({
responsive: true,
processing: true,
serverSide: true,
"language": {
"url": "/datatables/media/plug-in/Persian.json"
},
ajax: '{!! url('/admin/systemLogs/data/systemLogsDataTable') !!}',
columns: [
{ data: 'name', name: 'name' },
{ data: 'message_text', name: 'message_text' },
]
});
});
</script>
ich verstanden habe, was das Problem von Middleware ist:
public function handle($request, Closure $next,$guard = 'admin')
{
if(!Auth::guard($guard)->check()){
return redirect('/administrator/logout');
}else{
return $next($request);
}
}
wenn ich änderte es an:
public function handle($request, Closure $next,$guard = 'admin')
{
return $next($request);
}
Es funktioniert gut, so bedeutet es das Problem von AJAX ist. was muss ich tun?
Nein ich muss mich einloggen, um diese Seite zu sehen. Ich sagte, wenn die Anzahl der ausgewählten Felder mehr als 3 ist, gibt es keinen Fehler oder wenn ich falsche Server Seite mache, dann gibt es keinen Fehler wieder. Danke –
Was meinst du mit make false serverseite? @ehsankhodayar –
Wenn Sie serverside true setzen, wird es Daten jedes Mal vom Server zum Beispiel auf der Suche oder auf Seitenumbruch und dem anderen holen, aber wenn Sie es falsch setzen, wird es alle Daten von der Datenbank beim ersten Mal dann die anderen Dinge wie Suche fechten oder Seitenumbruch und der andere ist nicht Serverver Seite und es ist Client-Seite. –