向 Laravel 和 mysql 专家快速提问,我有以下三个疑问:-
// Only Can use slug here
$post = Post::whereSlug($slug)->with(['category', 'author'])->first();
$prevPost = Post::where('id', '<', $post->id)
->select('id', 'title', 'slug')
->orderBy('id', 'desc')
->first()
$nextPost = Post::where('id', '>', $postId)
->select('id', 'title', 'slug')
->orderBy('id')
->first()
有什么方法可以将所有三个查询合并为一个。我想将所有三个查询合并为一个,对于最后两个查询,我需要 $post->id。我想要一个包含所需帖子、上一篇帖子到所需帖子和下一篇帖子到所需帖子的结果
最佳答案
没有一种实际的 Eloquent 方法可以将所有这些查询合并为一个查询。您可以使用 Fluent 原始查询以及一些棘手的窗口函数,但是这些函数编写起来非常耗时,并且取决于您的特定 SQL 类型。
关于php - 如何将以下三个 Laravel Eloquent 查询合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49001223/