Laravel-datatables: Total récapitulatif dans la colonne du pied de page

Créé le 3 juil. 2017  ·  9Commentaires  ·  Source: yajra/laravel-datatables

Résumé du problème ou de la demande de fonctionnalité

Comment créer un résumé dans la colonne du pied de page?

Extrait de code du problème

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

->

Détails du système

  • Système d'exploitation Windows 8.1
  • PHP version 5.6.29
  • Laravel version 5.4
  • Laravel-Datatables Version 7
question

Commentaire le plus utile

$ dataTableQuery - Ceci est passé sans filtrage et | ou recherche de données. Comment obtenir une requête analysée avec tous les paramètres de liaison?

Tous les 9 commentaires

Utilisez la même requête transmise sur DT comme:

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

$ dataTableQuery - Ceci est passé sans filtrage et | ou recherche de données. Comment obtenir une requête analysée avec tous les paramètres de liaison?

Comment afficher cela dans la lame?

@ yurik3zzz vous pouvez utiliser l'api withQuery pour cela sur la dernière version.

@ prakash-pokhrel vous auriez besoin de gérer l'affichage via javascript en accédant aux données de réponse ajax. Quelque chose comme: LaravelDataTables["users-table"].ajax.json()

@yajra je ne l'ai toujours pas compris. Dois-je placer cette fonction à l'intérieur de html () de datatable ou mettre directement dans blade. Btw, j'utilise datatable comme service

Essayez d'ajouter un script sur drawCallback.

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

Si vous utilisez le dernier package html v4.0, vous pouvez faire quelque chose comme:

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

Salut,
Que signifie «#total» dans
-> drawCallback ('function () {$ ("# total"). val (this.api (). ajax.json (). total)}')

Cet identifiant est-il dans la table ou dans un autre élément html?

C'est un sélecteur jquery pour un élément utilisant id.

Cette page vous a été utile?
0 / 5 - 0 notes