2017-01-26 5 views
0

Hallo Stackoverflow Ich bin jetzt ein webbasiertes Projekt zu tun, dass jetzt alle Produkte von meinem Büro Anzeige i Problem bin Begegnung jetzt ich diese Seite haben, und ich verwendet Datentabellen serverseitige VerarbeitungLaravel 4 Datentabellen Server Komplettbearbeitung

Hier ist die Ausblick:

<table id="dloadTable" class="display" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
     <th>File ID Number</th> 
     <th>File Name</th> 
     <th>File Type</th> 
     <th>Date Issued</th> 
     <th>Uploader</th> 

     <th>Action</th> 
     </tr> 
    </thead> 
    <tfoot> 
     <tr> 
     <th>File ID Number</th> 
     <th>File Name</th> 
     <th>File Type</th> 
     <th>Date Issued</th> 
     <th>Uploader</th> 

     <th>Action</th> 
     </tr> 
    </tfoot> 
    </table> 

Controller:

public function getAdvanceFilterData() 
    { 

     $files = Files::select(array('files.id','files.file_name','files.file_type','files.date','files.username')); 

     return Datatables::of($files)->make(true); 

Route:

Route::get('/getfilesdata', '[email protected]'); 

Und js:

$(document).ready(function() { 
var oTable = $('#dloadTable').DataTable({ 
     processing: true, 
     serverSide: true, 
     ajax: { 
      url: '/getfilesdata', 
      dataSrc:"" 
     }, 
     order: [[1,'desc']], 
     columnDefs: [ { //this prevents errors if the data is null 
      targets: "_all", 
      defaultContent: "" 
      } ], 
     columns: [ 
      {data: 'id', name: 'files.id'}, 
      {data: 'file_name', name: 'files.file_name'}, 
      {data: 'file_type', name: 'files.file_type'},  
      {data: 'date', name: 'files.date'}, 
      {data: 'username', name: 'files.username'}, 
      {data: 'action', name: 'action', orderable: false, searchable: false} 

     ] 
    }); 

}); 

Und wenn ich versuche, was ich in meinem Controller ich erwarte es nicht die Daten seiner nicht Rückkehr JSON Daten erhalten zu überprüfen, was soll ich tun ?. TIA

+0

'in Ihrer Datenbank eine Tabelle files' ist? –

+0

Ja Peter, das war der Name einer der Tabelle in meiner Datenbank –

+0

Haben Sie überprüft, dass Sie die entsprechenden Daten in '$ files' erhalten? –

Antwort

0

Sie benötigen zwei Routen, damit es funktioniert. Die erste Route dient zur Anzeige der Tabellenansicht und die zweite Route dient zur Verarbeitung von dataTables json Antwort. In Ihrem Beispiel ist getAdvanceFilterData nur für die Verarbeitung der JSON-Antwort. Sie müssen zusätzliche Route hinzufügen wie getIndex tut dies in diesem example und laden Sie die entsprechende Ansicht.

Ein Beispiel für Ihre Controller-Klasse

class FilesController extends Controller 
{ 
    /** 
    * Displays datatables front end view 
    */ 
    public function getIndex() 
    { 
     return view('files.index'); 
    } 

    /** 
    * Process datatables ajax request. 
    */ 
    public function getAdvanceFilterData() 
    { 
     $files = DB::table('files')->select(array('files.id','files.file_name','files.file_type','files.date','files.username')); 

     return Datatables::of($files)->make(true); 
    } 
} 

Routing

Route::controller('files', 'FilesController', [ 
    'anyData' => 'files.data', 
    'getIndex' => 'files', 
]); 

Javascript

$(function() { 
    $('#users-table').DataTable({ 
     processing: true, 
     serverSide: true, 
     ajax: '{!! route('files.data') !!}', 
    order: [[1,'desc']], 
    columnDefs: [{//this prevents errors if the data is null 
     targets: "_all", 
     defaultContent: "" 
     }], 
    columns: [{data: 'id', name: 'files.id'}, 
       {data: 'file_name', name: 'files.file_name'}, 
       {data: 'file_type', name: 'files.file_type'},  
       {data: 'date', name: 'files.date'}, 
       {data: 'username', name: 'files.username'}, 
       {data: 'action', name: 'action', orderable: false, searchable:false}] 
    }); 
}); 
+0

Ich habe diese erste Route, die du gerade gesagt hast, aber ich denke, es funktioniert nicht zu meinem Projekt, das ich versuche Verwenden Sie dieses Beispiel https://github.com/bllim/laravel4-datatables-package public function getAdvanceFilter() { Rückansicht ('datatables.eloquent.advance-filter'); } –