I want to have a table which shows all the data per company that has a filter search input, the problem is when I put the first argument where('company_id', Auth::user()->company_id)
it bugs out and doesn't make the filter search work.
$groups = Group::where('company_id', Auth::user()->company_id)
->orWhere('code', 'like', $filter)
->orWhere('name', 'like', $filter)
->orWhere('description', 'like', $filter)
->orWhereRaw("(CASE WHEN active = 1 THEN 'Active' ELSE 'Inactive' END) LIKE '%$filter%'")
->orderBy($this->column, $this->order)
->paginate($this->size);
This is my query for the table.
I suppose you want company_id
filter to apply to all query
and combine other orWhere
conditions. The other orWhere
should be grouped in query
like this:
$groups = Group::where('company_id', Auth::user()->company_id)
->where(function ($query) use ($filter) {
return $query->where('code', 'like', $filter)
->orWhere('name', 'like', $filter)
->orWhere('description', 'like', $filter)
->orWhereRaw("(CASE WHEN active = 1 THEN 'Active' ELSE 'Inactive' END) LIKE '%$filter%'");
})
->orderBy($this->column, $this->order)
->paginate($this->size);