Laravel-datatables: デフォルトの順序を設定する方法

作成日 2016年02月02日  ·  6コメント  ·  ソース: yajra/laravel-datatables

デフォルトの順序をどのように設定しますか?
exデフォルトの注文データ列ID

最も参考になるコメント

サービスとして使用している場合は、メソッド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 評価

関連する問題

shadoWalker89 picture shadoWalker89  ·  3コメント

hohuuhau picture hohuuhau  ·  3コメント

jgatringer picture jgatringer  ·  3コメント

techguydev picture techguydev  ·  3コメント

macnux picture macnux  ·  3コメント