Laravel/Searchbar : 如何搜索几个词
Laravel/Searchbar : how to search around several words
我尝试制作一个搜索栏,您可以在其中请求几个词:
例如,输入是“word#1”和“word#2”。
我希望返回的结果与输入的任何一个单词一起呈现。
目前,我的控制器中有这个功能,但它禁止搜索几个独立的词,我尝试了几种解决方案,但它们都不起作用。
public function search()
{
$data = [
'title'=> $description = 'Recherche sur '.config('app.name'),
'description'=> $description,
'heading'=> config('app.name'),
];
$q = request()->input('q');
$products = Product::where('title','like',"%$q%")
->orWhere('subtitle','like',"%$q%")
->orWhere('description','like',"%$q%")
->paginate();
return view('products.search', $data)->with('products', $products);
}
你能帮帮我吗?
由于您想搜索输入的所有单词,因此在您的代码中您必须逐字循环。例如
$q = request()->input('q');
$words = explode(' ', $q);
$query = Product::query();
foreach ($words as $word) {
$query->orWhere('title','like',"%$word%")
->orWhere('subtitle','like',"%$word%")
->orWhere('description','like',"%$word%");
}
$products = $query->paginate();
我尝试制作一个搜索栏,您可以在其中请求几个词: 例如,输入是“word#1”和“word#2”。 我希望返回的结果与输入的任何一个单词一起呈现。 目前,我的控制器中有这个功能,但它禁止搜索几个独立的词,我尝试了几种解决方案,但它们都不起作用。
public function search()
{
$data = [
'title'=> $description = 'Recherche sur '.config('app.name'),
'description'=> $description,
'heading'=> config('app.name'),
];
$q = request()->input('q');
$products = Product::where('title','like',"%$q%")
->orWhere('subtitle','like',"%$q%")
->orWhere('description','like',"%$q%")
->paginate();
return view('products.search', $data)->with('products', $products);
}
你能帮帮我吗?
由于您想搜索输入的所有单词,因此在您的代码中您必须逐字循环。例如
$q = request()->input('q');
$words = explode(' ', $q);
$query = Product::query();
foreach ($words as $word) {
$query->orWhere('title','like',"%$word%")
->orWhere('subtitle','like',"%$word%")
->orWhere('description','like',"%$word%");
}
$products = $query->paginate();