Laravel-datatables: как установить порядок по умолчанию

Созданный на 2 февр. 2016  ·  6Комментарии  ·  Источник: yajra/laravel-datatables

как установить порядок по умолчанию?
ex идентификатор столбца данных заказа по умолчанию

Самый полезный комментарий

Если вы используете в качестве службы, в методе 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'
                ]
           ]);

Все 6 Комментарий

Следуйте этому 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.

Должен быть более официальный способ сделать это?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги