I am using laravel 6 : need user to find records by search bar, but it shows No Available Records
enter image description here this in my model:Category model:
JavaScript
x
public function scopeWhenSearch($query, $search)
{
return $query->when($search, function ($q) use($search){
return $q->where('name','like','%$search%');
});
} //end of scopeWhenSearch
Then in my controller I used in the index when search function:categoryController
JavaScript
public function index()
{
//
$categories= Category::whenSearch(request()->search)->paginate(2);
return view('dashboard.categories.index', compact('categories'));
}
Advertisement
Answer
'%$search%'
is literally searching for the string $search
, not whatever $search
contains… Using '
(single quotes) in PHP doesn’t extract the value from the variable, you need to concatenate the value or use "
(double quotes):
JavaScript
return $query->when($search, function ($q) use($search){
return $q->where('name', 'LIKE', '%'.$search.'%');
// or use "
// return $q->where('name', 'LIKE', "%$search%");
});