gpt4 book ai didi

php - 使用查询生成器在 Laravel 中进行复杂查询

转载 作者:行者123 更新时间:2023-11-30 21:48:42 27 4
gpt4 key购买 nike

在我的网站上,我正在尝试实现搜索功能。当有人输入关键字时,我应该根据帖子标题或正文,或根据用户名、用户名或个人简介,找到可能与该关键字匹配的所有帖子和用户。但是,我在执行此查询时遇到了问题。

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)

感谢任何帮助。

谢谢。 :)

最佳答案

使用closure像这样对 where()orWhere() 进行分组:

$posts = Post::where('deleted', 0)
->where(function($q) use($keyword) {
$q->where('title', 'like', '%' . $keyword . '%')
->orWhere('body', 'like', '%' . $keyword . '%');
})
->orderBy('title')
->get();

关于php - 使用查询生成器在 Laravel 中进行复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48258030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com