Laravel-datatables: So filtern Sie einen verketteten Ergebniswert in mehreren Feldern in Laravel 5.3

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

Hallo,

In meiner Datentabelle rufe ich das Namensfeld als CONCAT (fname, "", "lname") ab. Ich muss das Namensfeld in der Datentabelle suchen und es sollte eine Übereinstimmung mit fname oder lname zurückgeben. Bitte lassen Sie mich wissen, wie das geht:

js code:

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

PHP-Code:

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

Systemdetails: "

  • Betriebssystem: Windows8, Linux
  • PHP-Version: 5.6
  • Laravel Version: 5.3
  • Laravel-Datatables Version: neueste Version
question

Hilfreichster Kommentar

Versuchen Sie vielleicht, diesen Trick auf Ihrem js anzuwenden:

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

Oder verwenden Sie die filterColumn- API.

Alle 3 Kommentare

Versuchen Sie vielleicht, diesen Trick auf Ihrem js anzuwenden:

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

Oder verwenden Sie die filterColumn- API.

Mit der filterColumn-API hat es funktioniert. Vielen Dank.
Was aber, wenn wir ein Feld einer anderen Tabelle durchsuchen müssen (die in der Hauptabfrage enthalten ist)?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen