rocky
rocky

Reputation: 631

Yajra datatable global search for comma separated values not working

Actual Result

Using Yajra datatable when I search for data (column having comma separated values) using global search it doesn't work and shows as empty result for permission column

Expected Result

https://datatables.net/extensions/searchpanes/examples/advanced/renderSearchArrays.html

searching works fine for comma seperated value in Jquery datatable however same behaviour is not working with Yajra datatable

What have you done:- Implemented same behaviour in Yajra Datatable present in the link of Expected Result

code working in Jquery datatable

render: {
          _: '[, ].name',
          sp: '[].name'
        },

code not working in Yajra datatable

->render([
           '_' => '[, ].name',
           'sp' => '[].name',
         ])

result in Undefined array key 0

done some research and found similar github issue not working

my project composer.json "yajra/laravel-datatables-oracle": "^10.0"

permission is fetched using this code (not sure do we really need use addColumn for permissions?)

->addColumn('permissions', function ($user) {
                return implode(',', $user->permissions->pluck('name')->toArray());
          })

Can anyone suggest how to achieve working global search for multi value single column?

Upvotes: 0

Views: 352

Answers (1)

rocky
rocky

Reputation: 631

Finally after struggling for few days I was able to figure it out using Yajra Datatables

->addColumn('role', function (User $user) {
                return implode(', ', $user->getRoleNames()->toArray());
            })
->filterColumn('role', function ($query, $keyword) {
                $query->whereHas('roles', function ($q) use ($keyword) {
                    $q->whereRaw("roles.name like ?", ["%$keyword%"]);
                });
            })

Upvotes: 0

Related Questions