Laravel-datatables: Gesamtsumme in der Fußzeilenspalte

Erstellt am 3. Juli 2017  ·  9Kommentare  ·  Quelle: yajra/laravel-datatables

Zusammenfassung des Problems oder der Funktionsanforderung

Wie mache ich eine Zusammenfassung zur Fußzeile?

Code-Snippet des Problems

        $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);

->

Systemdetails

  • Betriebssystem Windows 8.1
  • PHP Version 5.6.29
  • Laravel Version 5.4
  • Laravel-Datatables Version 7
question

Hilfreichster Kommentar

$ dataTableQuery - Dies wird ohne Filtern und | oder Suchen von Daten übergeben. Wie erhalte ich eine analysierte Abfrage mit allen Bindungsparametern?

Alle 9 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen