Laravel-datatables: Comment passer un paramètre supplémentaire avec un autre paramètre par défaut

Créé le 9 avr. 2018  ·  7Commentaires  ·  Source: yajra/laravel-datatables

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

Bonjour,

Je veux passer un paramètre supplémentaire avec un autre paramètre par défaut qui se transmet automatiquement à la demande ajax.
Je veux passer une variable qui ne fait pas partie des données / champs qui s'affichent sur les tables.
En gros, je veux ajouter un filtre qui ne fait pas partie des colonnes actuellement affichées, comment puis-je le passer?

question

Commentaire le plus utile

J'ai passé le paramètre supplémentaire avec le datatable comme ceci-

->with([
   "cities" => app(\App\Http\Controllers\HelperController::class)->cityListing(),
  "leadCounters" =>  $this->leadCounters
])
->make(true);

Mais, comment puis-je obtenir ces paramètres supplémentaires dans la réponse de Yajra Datatable?

Tous les 7 commentaires

Sur ajax minifié, vous pouvez ajouter un tableau de paramètres qui seront inclus par défaut sur demande. C'est peut-être ce dont vous avez besoin? Voir docs https://yajrabox.com/docs/laravel-datatables/master/html-builder-minified-ajax pour la réf.

@jatinbphp tu veux dire comme ça?
fonction publique userSkpDataTable ($ pes)
{
$ skp = skp :: isAktif ($ pes, 1);
return Datatables :: of ($ skp)
-> addColumn ('action', function ($ user) use ($ pes) {
retourne ' lien avec 2 paramètres ';
}) -> make (vrai);
}

Utilisez-vous le constructeur html ou écrivez-vous votre propre script?

Quoi qu'il en soit, essayez ce js:

`` `js
$ ('# ..'). DataTable ({
ajax: {
url: '',
données: fonction (données) {data.key = valeur; }
},
...
})

Bonjour Yajra, j'essaie de passer un paramètre supplémentaire du contrôleur à la vue lors de l'utilisation de Yajra, donc j'obtiens quelque chose comme le montant total fabriqué à partir du filtre de plage de temps. voir la capture d'écran ci-dessous de mon contrôleur.
À mon avis, je ne peux pas faire ça {{cashMade}}

Je reçois une erreur: utilisation de cashMade constant non défini - supposé 'cashMade'

yaj

@ laurence702 que vous pouvez utiliser avec l' api pour ajouter des données sur la réponse.

Route::get('user-data', function() {
    $model = App\User::query();

    return DataTables::eloquent($model)
                ->with('posts', 100)
                ->with('comments', 20)
                ->toJson();
});

J'ai passé le paramètre supplémentaire avec le datatable comme ceci-

->with([
   "cities" => app(\App\Http\Controllers\HelperController::class)->cityListing(),
  "leadCounters" =>  $this->leadCounters
])
->make(true);

Mais, comment puis-je obtenir ces paramètres supplémentaires dans la réponse de Yajra Datatable?

@UmeshKrRana procédez comme suit:

Enregistrez l'initialisation du DataTable dans une variable:

var table = $('.vehicles-report-table').DataTable({...})

Accédez ensuite aux données via la fonction drawCallback:

drawCallback: function(settings) { console.log(table.ajax.json()) }

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