Я использую laravel таблицы данных yajra с полиморфными отношениями c. Стол не работает должным образом. Вот проблемы:
- Слишком медленная загрузка (всего 81 запись для всех и длина страницы установлена на 10);
- Загрузчик не отображается;
- Данные не появляется в таблице;
- Ошибка получения: запрошен неизвестный параметр '0' для строки 0, столбца 0. Для получения дополнительной информации об этой ошибке см. http://datatables.net/tn/4
- Не знаю, как добавить классы в столбцы моей таблицы в соответствии с разрешениями пользователя.
Как сохранить добавленный столбец моего флажка следующим образом:
$ ("# mytable"). DataTable ( {columnDefs: [{target: 'select-checkbox', sortable: false}], выберите: {style: 'multi', селектор: 'td: last-child'}});
Вот мой laravel код (php):
$query = Book::with('author')->select('*');
return Datatables::of($query)
->editColumn('name', function($row) {
if($row->author->name !== null){
return $row->author->name;
} else {
return $row->author->pseudo;;
}
})
->addColumn('action', function($row){
$btn = '<a href="/show'.$row->id.'">Display</a>';
return $btn;
})
->addColumn('selected', function($row){
return '<input name="selected[]" value="'.$row->id.'" type="checkbox" class="select-checkbox w-100"/>';
})
->rawColumns(['action', 'selected'])
->make(true);
Вот мой Datatable код инициализации (js):
var table = $('#mytable').DataTable({
processing: true,
serverSide: true,
stateSave: true
ajax: 'myajaxurl/datatable',
language: {
"url": "/json/dataTables.french.lang.json"
},
pageLength: 10,
lengthMenu: [ 5, 10, 15, 25, 50, 100 ],
responsive: true,
"columns": [
{data: 'id', name: 'id', visible: false},
{data: 'author_id', name: 'author_id', visible: false},
{data: 'name', name: 'name', sClass:'name'},
{data: 'action', name: 'action', searchable: false},
{data: 'selected', name: 'selected', searchable: false, sortable: false},
]});