Поиск не работает, хотя элемент существует в БД - PullRequest
0 голосов
/ 24 января 2020

Я использую laravel 6: нужен пользователь для поиска записей по строке поиска, но он показывает Нет доступных записей

введите описание изображения здесь это в моей модели: Категория модели:

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

}   //end of scopeWhenSearch

Тогда в моем контроллере я использовал в индексе функцию поиска: categoryController

public function index()
{
    //

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

1 Ответ

0 голосов
/ 24 января 2020

'%$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%");
});
...