php - 用于排序的 orderColumn 不适用于 yajra 数据表
问题描述
我在 laravel 版本上使用Yajra 数据表8.0
包。
在此之前我使用的是旧版本,我使用->orderBy('created_at', 'desc')
基于特定列对数据进行排序。
但在较新的版本中,建议使用一种orderColumn
方法进行排序。但这对我不起作用。
假设我想将Post
我网站的所有内容都排序为 desc on field created_at
。为此我写了这个:
$posts =
Post::select(['post_id', 'post_title', 'start_date', 'end_date', 'picture', 'active', 'created_at', 'deleted_at']);
if ($request->has('showDeleted') && $request->get('showDeleted') == 1) {
$posts = $posts->withTrashed();
}
$datatable = app('datatables')->of($posts)
->orderColumn('created_at', '-created_at $1');
return $datatable->make(true);
正如你所看到的,我用过orderColumn
但酸痛不起作用。而且我不知道如何正确使用它。
解决方案
也许为时已晚,但这也需要一个答案。
“在某些情况下,您可能希望对特定列使用自定义顺序 sql”意味着此功能不适用于正常情况。一般情况下,当你想按表格的某个字段排序时,只需点击该字段的列名,订单就会自动运行,无需执行任何操作。你的情况只是正常顺序。无需使用 orderColumn 函数。
如果您想使用 orderColumn 函数。这是如何使用它:
这不会在第一次加载数据表时运行,您必须单击表列名称 (updated_at) 以使其执行 Order 查询。
如果你想通过 updated_at 设置默认顺序:
$html = $htmlBuilder
->parameters([
'order' => [5, 'asc'] // here is the updated_at column number
])
->addColumn([
'data' => 'id',
'name' => 'id',
'title' => 'id',
])
->addColumn([
'data' => 'start_date',
'name' => 'start_date',
'title' => 'start_date',
])
->addColumn([
'data' => 'end_date',
'name' => 'end_date',
'title' => 'end_date',
])
->addColumn([
'data' => 'picture',
'name' => 'picture',
'title' => 'picture',
])
->addColumn([
'data' => 'active',
'name' => 'active',
'title' => 'active',
])
->addColumn([
'data' => 'created_at',
'name' => 'created_at',
'title' => 'created_at,
])
->addColumn([
'data' => 'deleted_at',
'name' => 'deleted_at',
'title' => 'deleted_at',
]);
return view('path.to.view', compact('html'));
推荐阅读
- sql - SQL:嵌套查询,每个条件只有一行(第一个?)
- c - 在c中读取文件时出现分段错误
- version-control - 我想对我的数据库数据进行版本控制,而不是数据库的表结构?
- php - 如何使用 Symfony Mailer 组件对带有 DKIM 签名的消息进行签名?
- ios - Firebase 身份验证尝试使用 Apple 的身份令牌在 Xamarin.iOS 应用程序中返回 17999 INVALID_CREDENTIAL_OR_PROVIDER_ID
- html - 使用 CSS 样式化损坏的图像替代文本
- ruby-on-rails - Rails:当不使用它返回的对象时,调用 ActionController::Parameters#permit() 会实现什么?
- sql-server - 如何使用 SQL Server 中另一列的数据更新一列?
- javascript - 如何在反应中获取输入字段值?
- sql-server - 如何从 SQL Server 中的链接服务器调用表值函数?