Laravel-datatables: Как отфильтровать объединенное значение результата в нескольких полях в Laravel 5.3

Созданный на 3 февр. 2017  ·  3Комментарии  ·  Источник: yajra/laravel-datatables

Привет,

В моей таблице данных я получаю поле имени как CONCAT (fname, "", "lname"). Мне нужно найти поле имени в таблице данных, и оно должно вернуть совпадение с fname или lname. Пожалуйста, дайте мне знать, как это сделать:

js код:

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

Код 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);

Сведения о системе: "

  • Операционная система: Windows8, Linux
  • Версия PHP: 5.6
  • Версия Laravel: 5.3
  • Версия Laravel-Datatables: последняя
question

Самый полезный комментарий

Возможно, попробуйте использовать этот трюк на своем js:

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

Или используйте filterColumn api.

Все 3 Комментарий

Возможно, попробуйте использовать этот трюк на своем js:

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

Или используйте filterColumn api.

с помощью filterColumn api это сработало. Спасибо.
Но что, если нам нужно выполнить поиск в поле другой таблицы (которая включена в основной запрос).

хорошо, это решено с помощью https://datatables.yajrabox.com/fluent/joins. Спасибо

Была ли эта страница полезной?
0 / 5 - 0 рейтинги