php - 如何将以下三个 Laravel Eloquent 查询合并为一个?

标签 php mysql laravel eloquent laravel-5.6

向 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/

相关文章:

mysql - 了解自连接 (SQL) 中 ON 子句的顺序

mysql - 更新列以进行快速分析

php - Laravel 重定向数据不起作用

php - 交易id无效 10609

php - 我如何使用 ajax 从我在此处调用的 php 文件响应 "read"?

php - Laravel 5.4 错误 405 方法不允许错误

php - 两天后为 WooCommerce 搁置订单发送自定义提醒电子邮件

php - 如何在表中插入章节数行

javascript - Laravel Vue Axios 未定义

php - 如何通过 git 推送 laravel 包和帮助文件