デフォルトの順序をどのように設定しますか?
exデフォルトの注文データ列ID
この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()で、パラメーター配列を使用します。