Я пытаюсь использовать DataTables для отображения списка модели приложения. Модель приложения имеет операции:
public function operations(){
return $this->hasMany('\App\Operation', 'application_id', 'id');
}
Модель операций имеет состояние:
public function state(){
return $this->belongsTo('App\State', 'status_id', 'id');
}
и автор операции (пользователь):
public function user(){
return $this->hasOne('App\User', 'id', 'user_id');
}
Чтобы включить датирование, я используя этот код:
$(function() {
$('#applications-table').DataTable({
language: {
"url": "/js/Polish.json"
},
processing: true,
serverSide: true,
ajax: '{!! route('applications.data') !!}',
columns: [
{ data: 'number', name: 'number', className: "vertical_middle", searchable: true},
{ data: 'operations.0.correspondence', name: 'operations.correspondence', className: "vertical_middle", orderable: false, searchable: false},
{ data: 'operations.0.comment', name: 'operations.comment', className: "vertical_middle", orderable: false, searchable: true},
{ data: 'operations.0.prognosed', name: 'operations.prognosed', className: "vertical_middle", searchable: false},
{ data: 'operations.0.state.name', name: 'operations.state.name', className: "vertical_middle", searchable: false},
{ data: 'operations.0.created_at', name: 'operations.created_at', className: "vertical_middle", type: "date", searchable: true},
]
});
});
ApplicationController обслуживает данные с использованием этого кода
$model = Application::with(array(
'operations' => function ($query) {
$query->orderByDesc('operations.created_at')->with('state')->with('user');
}
));
return Datatables::of($model)->make(true);
И, наконец, проблема - таблица отображается правильно, но когда я пытаюсь отсортировать по другому столбцу, чем первое, я получаю предупреждение:
Предупреждение DataTables: таблица id = Applications-table - запрошенный неизвестный параметр 'operations.0.correspondence' для строки 0.
Честно, Я понятия не имею, как заставить это работать. Заранее спасибо.