Здравствуйте, Stackoverflow. Сейчас я занимаюсь веб-проектом, в котором отображаются все продукты моего офиса. У меня возникла проблема. У меня есть эта страница, и я использовал обработку данных на сервере.
Вот мнение:
<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>
контроллер:
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::get('/getfilesdata', 'FileController@dloadFile');
И 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}
]
});
} );
И когда я пытаюсь проверить, что я получаю в своем контроллере, это не данные, я ожидаю, что они не возвращают данные JSON, что мне делать ?. ТИА
Вам нужно два пути для его работы. Первый маршрут для отображения
вид таблицы и 2-й маршрут для обработки dataTables JSON
ответ. На вашем примереgetAdvanceFilterData
только для
обработка ответа JSON. Вам нужно добавить дополнительный маршрут как
getIndex
делает в этом пример и загрузить соответствующий вид.
Пример вашего класса контроллера
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);
}
}
маршрутизация
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}]
});
});
Других решений пока нет …