Wie mache ich eine Zusammenfassung zur Fußzeile?
$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);
->
Verwenden Sie dieselbe Abfrage, die an DT übergeben wurde, wie:
->with('sum_balance', $dataTableQuery->sum('balance'))
$ dataTableQuery - Dies wird ohne Filtern und | oder Suchen von Daten übergeben. Wie erhalte ich eine analysierte Abfrage mit allen Bindungsparametern?
Wie wird dies in der Klinge angezeigt?
@ yurik3zzz können Sie mitQuery API für die neueste Version verwenden.
@ prakash-pokhrel Sie müssten die Anzeige über Javascript verwalten, indem Sie auf die Ajax-Antwortdaten zugreifen. So etwas wie: LaravelDataTables["users-table"].ajax.json()
@yajra Ich habe es immer noch nicht verstanden. Sollte ich dies in html () Funktion von datatable platzieren oder direkt in Blade setzen. Übrigens verwende ich datatable als Service
Versuchen Sie, ein Skript in drawCallback hinzuzufügen.
`` `js
$ ('# users-table'). on ('draw.dt', function () {
$ ('# total'). val (LaravelDataTables ["Benutzer-Tabelle"]. ajax.json (). total)
})
Wenn Sie das neueste HTML-Paket v4.0 verwenden, können Sie Folgendes tun:
public function html()
{
...
->ajax()
->drawCallback('function() { $("#total").val( this.api().ajax.json().total ) }')
...
Hallo,
Wofür steht "#total"?
-> drawCallback ('function () {$ ("# total"). val (this.api (). ajax.json (). total)}')
Befindet sich diese ID in einer Tabelle oder in einem anderen HTML-Element?
Es ist ein Abfrageselektor für ein Element, das id verwendet.
Hilfreichster Kommentar
$ dataTableQuery - Dies wird ohne Filtern und | oder Suchen von Daten übergeben. Wie erhalte ich eine analysierte Abfrage mit allen Bindungsparametern?