Como fazer resumo para coluna de rodapé?
$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);
->
Use a mesma consulta passada no DT como:
->with('sum_balance', $dataTableQuery->sum('balance'))
$ dataTableQuery - Isso é passado sem filtrar e | ou pesquisar dados. Como obter uma consulta analisada com todos os parâmetros de ligação?
Como exibir isso na lâmina?
@ yurik3zzz você pode usar com a API de
@ prakash-pokhrel você precisaria lidar com a exibição via javascript acessando os dados de resposta do Ajax. Algo como: LaravelDataTables["users-table"].ajax.json()
@yajra Ainda não entendi. Devo colocar isso dentro da função html () da tabela de dados ou colocar diretamente na lâmina. A propósito, estou usando tabela de dados como serviço
Tente adicionar um script em drawCallback.
`` `js
$ ('# tabela de usuários'). on ('draw.dt', function () {
$ ('# total'). val (LaravelDataTables ["tabela de usuários"]. ajax.json (). total)
})
Se estiver usando o pacote html v4.0 mais recente, você pode fazer algo como:
public function html()
{
...
->ajax()
->drawCallback('function() { $("#total").val( this.api().ajax.json().total ) }')
...
Oi,
O que significa "#total" em
-> drawCallback ('function () {$ ("# total"). val (this.api (). ajax.json (). total)}')
Este id está dentro da tabela ou em outro elemento html?
É um seletor jquery para um elemento usando id.
Comentários muito úteis
$ dataTableQuery - Isso é passado sem filtrar e | ou pesquisar dados. Como obter uma consulta analisada com todos os parâmetros de ligação?