在我的网站上,我试图实现搜索功能。当有人输入关键字,我应该找到所有的职位和用户,可能符合该关键字的帖子标题或正文,或基于用户名或个人简介。但是,我在执行此查询时遇到问题。
public function search(Request $request) {
$keyword = $request->get('q');
$posts = Post::where('deleted', 0)
->where('title', 'like', '%'.$keyword.'%')
->orWhere('body', 'like', '%'.$keyword.'%')
->orderBy('title')
->get();
$users = User::where('name', 'like', '%'.$keyword.'%')
->where('active', 1)
->orWhere('username', 'like', '%'.$keyword.'%')
->orWhere('bio', 'like', '%'.$keyword.'%')
->orderBy('username')
->get();
return view('searchresults', compact('users', 'posts'));
}
我遇到的具体问题是 search
$posts变量包含已删除的文章。
这就是我真正需要的: select * from posts where deleted = 0 and (title like $keyword or body like $keyword)
谢谢你的帮助。
谢谢。:)
2条答案
按热度按时间3okqufwl1#
希望对你有帮助!!
zed5wv102#
使用闭包分组
where()
以及orWhere()
这样地: