如何检查用户是否正在对数据 table 中的 table 列进行排序
How to check if user is sorting table's column in datatables
我在 Laravel 8 上使用 yajra 的数据table,试图在服务器端实现“默认排序”。它已经在工作,但我正在尝试寻找其他解决方案,因为实施感觉有点老套。
我的控制器中有这样的东西:
$myData = new MyData;
if ($request->order[0]['column'] === '0') {
$myData->orderBy('priority');
}
return DataTables::of($myData)->make(true);
请注意if ($request->order[0]['column'] === '0')
部分。这里的想法是,如果 table 是第一次启动,别名用户没有自己进行任何列排序,那么数据应该按照 if 语句中定义的任何内容排序。 datatables本身没有定义order
属性,因此默认给0
列排序。
我正在从服务器端进行排序,因为它有点复杂并且从服务器而不是数据tables 更容易完成。再一次,上面的代码是有效的,但我只是觉得这有点 hacky。我可以使用其他替代方法吗?我应该更改代码,还是这样可以?
因此,在前面的 blade 代码中,将此添加到您的函数中以填充数据表...
order: [],
这将告诉数据表不要对数据进行任何排序,并使用您提供的数据作为第一个排序顺序。基本上给它一个空数组。
然后你就可以完全摆脱这种情况。然后像往常一样对您的数据进行排序 eloquent collection 您正在制作以填充所述数据表。
这是相关文档:
https://datatables.net/reference/option/order
我在 Laravel 8 上使用 yajra 的数据table,试图在服务器端实现“默认排序”。它已经在工作,但我正在尝试寻找其他解决方案,因为实施感觉有点老套。
我的控制器中有这样的东西:
$myData = new MyData;
if ($request->order[0]['column'] === '0') {
$myData->orderBy('priority');
}
return DataTables::of($myData)->make(true);
请注意if ($request->order[0]['column'] === '0')
部分。这里的想法是,如果 table 是第一次启动,别名用户没有自己进行任何列排序,那么数据应该按照 if 语句中定义的任何内容排序。 datatables本身没有定义order
属性,因此默认给0
列排序。
我正在从服务器端进行排序,因为它有点复杂并且从服务器而不是数据tables 更容易完成。再一次,上面的代码是有效的,但我只是觉得这有点 hacky。我可以使用其他替代方法吗?我应该更改代码,还是这样可以?
因此,在前面的 blade 代码中,将此添加到您的函数中以填充数据表...
order: [],
这将告诉数据表不要对数据进行任何排序,并使用您提供的数据作为第一个排序顺序。基本上给它一个空数组。 然后你就可以完全摆脱这种情况。然后像往常一样对您的数据进行排序 eloquent collection 您正在制作以填充所述数据表。 这是相关文档: https://datatables.net/reference/option/order