Laravel-datatables: 页脚列中的汇总总数

创建于 2017-07-03  ·  9评论  ·  资料来源: yajra/laravel-datatables

问题或功能要求摘要

如何对页脚栏进行汇总?

问题的代码段

        $dataTableQuery = Users::query()
            ->leftJoin('user_info', 'users.id', '=', 'user_info.id')
            ->select([
                'users.id',
                'users.username',
                'users.role_id',
                'user_info.first_name',
                'user_info.last_name',
                'user_info.email',
                'users.blocked',
                'users.balance',
                'users.created',
            ]);

$sums = [
            'sum_balance' => '0',
        ];

        $datatables = Datatables::of($dataTableQuery )
            ->escapeColumns(['first_name', 'last_name', 'email'])
            ->editColumn('created', function ($user) {
                return Carbon::createFromFormat('Y-m-d H:i:s', $user->created)->toDateString();
            })
            ->editColumn('blocked', function ($user) {
                return $user->blocked_label;
            })
            ->addColumn('actions', function ($user) {
                return $user->gamers_buttons;
            })
            ->filter(function ($query) use ($request) {
                if ($request->has('username')) {
                    $query->where('username', 'like', "%{$request->get('username')}%");
                }
            })
            ->addSum('sum_balance', DB::raw("sum(balance)")) <-- How do it?
            ->with('sums', $sums);

->

系统详情

  • 操作系统Windows 8.1
  • PHP版本5.6.29
  • Laravel 5.4版
  • Laravel-Datatables版本7
question

最有用的评论

$ dataTableQuery-传递时不过滤和|或搜索数据。 如何获得具有所有绑定参数的已解析查询?

所有9条评论

使用在DT上传递的相同查询,例如:

->with('sum_balance', $dataTableQuery->sum('balance'))

$ dataTableQuery-传递时不过滤和|或搜索数据。 如何获得具有所有绑定参数的已解析查询?

如何在刀片中显示呢?

@ yurik3zzz,您可以在最新版本上使用withQuery api。

@ prakash-pokhrel,您需要通过访问Ajax响应数据来通过javascript处理显示。 类似于: LaravelDataTables["users-table"].ajax.json()

@yajra我还是没明白。 我应该将其放置在datatable的html()函数中还是直接放置在刀片中。 顺便说一句,我正在使用数据表作为服务

尝试在drawCallback上添加脚本。

```js
$('#users-table')。on('draw.dt',function(){
$('#total')。val(LaravelDataTables [“ users-table”]。ajax.json()。total)
})

如果您使用的是最新的HTML软件包v4.0,则可以执行以下操作:

public function html()
{
  ...
  ->ajax()
  ->drawCallback('function() { $("#total").val( this.api().ajax.json().total ) }')
  ...

你好
“ #total”在其中代表什么
-> drawCallback('function(){$(“#total”)。val(this.api()。ajax.json()。total)}'))

这个ID是在表格中还是其他html元素中?

这是使用id的元素的jquery选择器。

此页面是否有帮助?
0 / 5 - 0 等级