尽管数据库中存在项目,但搜索不起作用

Search is not working although item exists in DB

我正在使用 laravel 6:需要用户通过搜索栏查找记录,但它显示 无可用记录

enter image description here 我的 model:Category 模型中的这个:

public function scopeWhenSearch($query, $search)
{
    return $query->when($search, function ($q) use($search){
            return $q->where('name','like','%$search%');
    });

}   //end of scopeWhenSearch

然后在我的控制器中我在搜索时在索引中使用function:categoryController

public function index()
{
    //

    $categories= Category::whenSearch(request()->search)->paginate(2);
    return view('dashboard.categories.index', compact('categories'));
}

'%$search%' 是字面上搜索字符串 $search,而不是 $search 包含的任何内容...在 PHP 中使用 '(单引号)不会'从变量中提取值,需要拼接值或者使用"(双引号):

return $query->when($search, function ($q) use($search){
   return $q->where('name', 'LIKE', '%'.$search.'%');
   // or use "
   // return $q->where('name', 'LIKE', "%$search%");
});