我有3个已连接/具有关联的表。
我想要搜索功能,我知道如何仅使用帖子(基于标题)进行搜索。
我试图用控制器中的Where搜索每个表,但是还是没有运气。
public function Search(Request $request)
{
$search = $request->search;
$posts = post::where('title', 'like', "%{$search}%")->paginate(5);
return view('search', compact('posts'))->with('result', $search);
}
例如
我有一个标题为“测试”的帖子,类别为“ Tost”,标签为“ Tast and Tust”
因此,如果我键入标题,类别或标签,我希望它显示出来。我该如何实现?
答案 0 :(得分:0)
您必须这样使用。
Post::where('title', 'like', '%' . Input::get('search') . '%')->get();
答案 1 :(得分:0)
尝试使用whereHas方法(有关更多信息,请检查https://laravel.com/docs/5.8/eloquent-relationships#querying-relations)
所以会变成这样:
Post::query()
->where('title', 'like', "%$search%")
->orWhereHas('categories', function ($query) use ($search) {
$query->where('name', 'like', "%$search%");
})