Laravel-datatables: Comment filtrer une valeur de résultat concaténée dans plusieurs champs dans Laravel 5.3

Créé le 3 févr. 2017  ·  3Commentaires  ·  Source: yajra/laravel-datatables

Salut,

Dans mon datatable, je récupère le champ de nom comme CONCAT (fname, "", "lname"). Je dois rechercher le champ de nom dans le datatable et il devrait renvoyer la correspondance avec fname ou lname. S'il vous plait, faites moi savoir comment faire ça:

code js:

columns  : [
             { data: 'name', name: 'fname' }, //I have tried this also : ['fname','lname' ]
                --------------------

Code PHP:

$users = User::leftJoin('address', 'address.user_id', '=', 'users.user_id') 
                    ->select([\DB::Raw(
                        'CONCAT(fname," ",lname) as name, CONCAT(country_code, "", mobile_number) as mobile_num, IF(status = 1, "Active", "Inactive") as status,
                        (SELECT count(subscription_id) FROM subscription WHERE subscription.user_id = users.user_id AND subscription.status IN (2,4)) as totalActivesubscription'

                        ), 'gender', 'city as address', 'city','users.user_id', 'email_id'])

                    ->where('users.role_id', '=', $aParam['role_id']);

            return Datatables::of($users)
                ->addColumn('actions', function ($users) {
                    return view('users.templates.user_action', [
                        'user' => $users
                        ])->render();
                })


            ->make(true);

Détails du système: "

  • Système d'exploitation: Windows8, Linux
  • Version PHP: 5.6
  • Version de Laravel: 5.3
  • Version Laravel-Datatables: dernière
question

Commentaire le plus utile

Essayez peut-être d'utiliser cette astuce sur vos js:

columns  : [
   { data: 'name', name: 'fname' },
   { data: 'name', name: 'lname', visible: false },
...

Ou utilisez l' API filterColumn .

Tous les 3 commentaires

Essayez peut-être d'utiliser cette astuce sur vos js:

columns  : [
   { data: 'name', name: 'fname' },
   { data: 'name', name: 'lname', visible: false },
...

Ou utilisez l' API filterColumn .

en utilisant l'API filterColumn cela a fonctionné. Merci.
Mais que faire si nous avons besoin de rechercher un champ d'une autre table (qui s'est jointe à la requête principale).

ok c'est résolu en utilisant https://datatables.yajrabox.com/fluent/joins. Merci

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