Laravel-datatables: Como filtrar um valor de resultado concatenado em múltiplos campos no Laravel 5.3

Criado em 3 fev. 2017  ·  3Comentários  ·  Fonte: yajra/laravel-datatables

Oi,

Na minha tabela de dados, estou recuperando o campo de nome como CONCAT (fname, "", "lname"). Eu tenho que pesquisar o campo de nome na tabela de dados e ele deve retornar correspondendo com fname ou lname. Por favor me deixe saber como faz isso:

código js:

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

Código 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);

Detalhes do sistema: "

  • Sistema operacional: Windows8, Linux
  • Versão PHP: 5.6
  • Versão do Laravel: 5.3
  • Versão do Laravel-Datatables: mais recente
question

Comentários muito úteis

Talvez tente usar este truque no seu js:

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

Ou use a API filterColumn .

Todos 3 comentários

Talvez tente usar este truque no seu js:

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

Ou use a API filterColumn .

usando filterColumn api funcionou. Obrigada.
Mas e se precisarmos pesquisar um campo de outra tabela (que se juntou na consulta principal).

ok, é resolvido usando https://datatables.yajrabox.com/fluent/joins. Obrigado

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jgatringer picture jgatringer  ·  3Comentários

t0n1zz picture t0n1zz  ·  3Comentários

vipin733 picture vipin733  ·  3Comentários

ghost picture ghost  ·  3Comentários

sangnguyenplus picture sangnguyenplus  ·  3Comentários