2015-06-23 5 views
1

Я пытаюсь использовать плагин datatables вместе с laravel, так как мне нужно управлять большими столами, а разбиение страниц на laravel будет недостаточно.Laravel 5 datatables с серверной стороной

Я использую yajra/laravel-datatables компонент, но я не могу заставить его работать, он выдает ошибку:

DataTables warning: table id=project-table - Ajax error. Fore more information about this error, please see http://datatables.net/tn/7

Прочитав ее, я не знаю, как решить эту проблему, я что он имеет какое-то отношение к моей маршрутизации, потому что я не совсем понимаю, как ajax извлекает результат.

Это то, что я сделал:

routes.php

Route::controllers([ 
'projects'  => 'ProjectController' 

]);

ProjectController.php (только функция, которая получает данные)

public function getDataTable() 
{ 
    $projectes = Project::select(['id', 'nom', 'desc', 'preu', 'hores', 'created_at']); 

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

Вид:

<table id="project-table" class="table table-condensed table-bordered table-striped"> 
       <thead> 
        <tr> 
         <th>#</th> 
         <th>Titol</th> 
         <th>Desc</th> 
         <th>Preu</th> 
         <th>Hores</th> 
         <th>Data Alta</th> 
        </tr> 
       </thead> 
      </table> 

Наконец, JS:

$(function() { 
$('#project-table').DataTable({ 
    processing: true, 
    serverSide: true, 
    ajax: '{{ url("projects/getDataTable") }}', 
    columns: [ 
     {data: 'id', name: 'id'}, 
     {data: 'nom', name: 'nom'}, 
     {data: 'desc', name: 'desc'}, 
     {data: 'preu', name: 'preu'}, 
     {data: 'hores', name: 'hores'}, 
     {data: 'created_at', name: 'created_at'} 
    ] 
}); 

});

+0

Have вы выполнили шаги отладки на странице помощи? Какой код ошибки вы получаете? – Styphon

+0

Да, я забыл упомянуть об этом, я получаю код ошибки 500 – ruuux93

+0

«... так как мне нужно управлять большими таблицами, а разбиение страницы на laravel будет недостаточно.» Почему? Это _exactly_, для чего предназначена разбивка на страницы. –

ответ

2

Измените свою функцию на getDatatable (введите Т нижний регистр) в ProjectController.php. Затем измените URL-адрес в запросе ajax на projects/datatable (без get. Поскольку вы использовали маршрут контроллера, контроллер будет прослушивать запрос GET по адресу projects/datatable).

Если это не так, отправьте ответ, когда вы откроете страницу projects/datatable прямо в вашем браузере.

+0

Можете ли вы разместить весь файл controller.php? Также весь файл клинка. – BakerStreetSystems

+0

Ну, видимо, я сделал изменения и не заметил этого. Проблема, которую вы указали, была проблемой. Спасибо, BakerStreet! – ruuux93

0

Laravel 5,1 должен быть установлен на DataTables версии 6.0:

composer require yajra/laravel-datatables-oracle:~6.0 
Смежные вопросы