как установить порядок по умолчанию?
ex идентификатор столбца данных заказа по умолчанию
Следуйте этому https://datatables.net/reference/option/order и просто используйте правильный индекс столбца.
Благодарность
Если вы используете в качестве службы, в методе html () в массиве параметров используйте
/**
* Optional method if you want to use html builder.
*
* <strong i="6">@return</strong> \Yajra\Datatables\Html\Builder
*/
public function html()
{
return $this->builder()
->columns($this->getColumns())
->parameters([
'order' => [
0, // here is the column number
'desc'
]
]);
Следуйте этому https://datatables.net/reference/option/order и просто используйте правильный индекс столбца.
Это на самом деле не решает порядок по умолчанию для запроса, хотя, например, сортировка по умолчанию, которая исходит из модели Eloquent ... если необходимо зациклить первую страницу, чтобы предотвратить переход страницы, то порядок изменится после первый вызов AJAX для сортировки
Следуйте этому https://datatables.net/reference/option/order и просто используйте правильный индекс столбца.
Это на самом деле не решает порядок по умолчанию для запроса, хотя, например, сортировка по умолчанию, которая исходит из модели Eloquent ... если необходимо зациклить первую страницу, чтобы предотвратить переход страницы, то порядок изменится после первый вызов AJAX для сортировки
Имеет ли это смысл? Есть обходной или стандартный метод? Мне все еще трудно найти эту информацию
Эта идея состоит в том, чтобы в конечном итоге $query
имел те же значения по умолчанию, что и AJAX, например, для рендеринга первой страницы.
Вот способ взломать функциональность, но он совсем не кажется идеальным:
if (!request()->ajax() && !request()->get('order')) {
$query = $query->orderBy('column_name', 'desc');
}
$dataTable = DataTables::eloquent($query);
if (request()->ajax() && !request()->get('order')) {
$dataTable = $dataTable->order(function($query) {
$query->orderBy('column_name', 'desc');
});
}
Часть перед назначением $dataTable
обрабатывает серверную часть, а часть после - AJAX.
Должен быть более официальный способ сделать это?
Самый полезный комментарий
Если вы используете в качестве службы, в методе html () в массиве параметров используйте