Laravel 按分页排序

2023-12-10

我有一个posts表和comments表,评论属于帖子,我在帖子和评论模型中设置了关系。我确实按照每个帖子的评论数量对帖子进行排序,如下所示:

      $posts = Post::with('comments')->get()->sortBy(function($post) {
           return $post->comments->count();
      });

我想知道如何对这些排序的帖子进行分页?

      $posts = Post::with('comments')->get()->sortBy(function($post) {
           return $post->comments->count();
      })->paginate(20);

不起作用并给我错误,说分页是一个未定义的方法。


我不知道你是否可以使用 Eloquent 来做到这一点,但你可以使用 join 来做到这一点:

$posts = Post::leftJoin('comments','posts.id','=','comments.post_id')->
               selectRaw('posts.*, count(comments.post_id) AS `count`')->
               groupBy('posts.id')->
               orderBy('count','DESC')->
               paginate(20);

然而,在这种情况下,似乎所有记录都是从数据库中获取的,并且仅显示来自分页器的记录,因此,如果您有很多记录,则会浪费资源。看来你应该为此进行手动分页:

$posts = Post::leftJoin('comments','posts.id','=','comments.post_id')->
               selectRaw('posts.*, count(comments.post_id) AS `count`')->
               groupBy('posts.id')->
               orderBy('count','DESC')->
               skip(0)->take(20)->get();

using skip and take但我不是雄辩专家,也许有更好的解决方案来实现你的目标,所以你可以等待,也许有人会给出更好的答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 按分页排序 的相关文章

  • 简单来说,Laravel IoC 容器是什么?

    谁能用简单易懂的语言解释依赖注入和 IoC 容器 因为我是 Laravel 的初学者 谢谢 答案变得比我最初想要的要长 我提供了一些背景信息 不过 如果您正在寻找短期解释 请阅读 IoC 容器的第一段和粗体段落 依赖注入 依赖注入是一种设计
  • URL::forceSchema 在登录前不起作用

    我在用着URL forceSchema https 在我的 Laravel 5 3 应用程序上强制使用 SSL 然而 它只有在登录后才有效 即使登录页面没有被 https 覆盖 我在用着可信代理 https github com fidel
  • Laravel 5.7:维护模式的自定义刀片模板,但不是 503.blade.php

    每次php artisan down开启后 Laravel 显示 503 页面 好的 我可以通过创建名为的新文件来自定义它503 blade php inside resources views errors 关键是 我在任何时候都不认为维
  • 如何在 Laravel 视图中找到当前语言?

    我正在使用 Laravel Lang 类来本地化我的网络应用程序 我已将两种语言添加到语言数组中application config application php 这会将用于本地化的默认语言更改为 URI 第一部分指示的任何内容 例如 b
  • 通过 IP 地址限制 Laravel 错误日志

    When debug被设定为true在 Laravel 的app config php有什么方法可以限制结果Whoops包含对某些 IP 地址的堆栈跟踪的错误页面 并且不在该列表中的 IP 显示特定视图 Thanks 没有内置 但是你可能可
  • Elasticquent(ElasticSearch) Laravel 限制

    您好 我尝试使用 elasticSearch 查询获取所有结果 但如果 limit 值为 null 则仅返回 10 个结果 videos Video searchByQuery match gt field gt request gt fi
  • Laravel - 删除整个集合

    我有文章的图像 当我更新文章时 我想检查图像是否相同 如果不是 我想删除它们 但如果可能的话 我想删除整个集合而不进行其他查询 诸如此类就像我在下面的代码中一样 images gt delete 这是我的功能 images Media wh
  • PHPUnit 和来自 Guzzle 的模拟请求

    我有一堂具有以下功能的课程 public function get string uri stdClass this gt client new Client response this gt client gt request GET u
  • Laravel Nova:如何显示二进制字符串中的图像?

    我将 PNG 的二进制内容保存在数据库中 我想在页面上显示这个 PNG 而不需要在磁盘上临时保存文件 我认为需要生成 img 标签 例如 img src
  • Laravel 5.4^ - 如何自定义通知电子邮件布局?

    我正在尝试自定义通过电子邮件发送通知时使用的 HTML 电子邮件布局 我已经发布了邮件和通知视图 php artisan vendor publish tag laravel mail php artisan vendor publish
  • 找不到类“App\Http\Controllers\Auth\User”

    我该如何解决这个 Laravel 错误 Class App Http Controllers Auth User not found 我正在为博客创建一个寄存器 并且使用以下内容 User create name gt request gt
  • Laravel - 覆盖模型 ID

    我正在开发电子书管理系统 我使用 UUID 而不是自动递增整数主键 它工作得很好 protected static function boot parent boot static creating function model model
  • 使用 Laravel Eloquent 获取所有最新记录

    我尝试以这种方式查询数据库 但它返回错误 未找到最新 DailyReport get gt latest gt paginate 10 我希望它返回所有带分页的每日报告 The latest 方法是缩写orderBy created at
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum
  • PHP 中正确的存储库模式设计?

    前言 我尝试在具有关系数据库的 MVC 架构中使用存储库模式 我最近开始学习 PHP 中的 TDD 并且我意识到我的数据库与应用程序的其余部分耦合得太紧密 我读过有关存储库并使用国际奥委会容器 http laravel com docs 4
  • PHP Laravel 路由问题

    我的设置目前看起来像这样 应用程序 控制器 register php class register Controller extends Base Controller public restful true public function
  • 使用 LIMIT/OFFSET 运行查询并获取总行数

    出于分页目的 我需要使用以下命令运行查询LIMIT and OFFSET条款 但我还需要计算该查询将返回的行数 而不需要LIMIT and OFFSET条款 我想运行 SELECT FROM table WHERE whatever ORD
  • Laravel 中 Twitter Bootstrap 导航的自动活动类

    和大多数人一样 我正在使用 Twitter Bootstrap 来构建我目前在 Laravel 中开发的网站 到目前为止 我很喜欢使用 Laravel 作为与 Rails 相当的 PHP 但我想知道是否有更好的方法来制作导航栏 我试图确保我
  • 用户离开时如何正确插入时间( user_left 和 user_joined 具有相同的值)

    在这段代码中 我想获取用户加入和离开的时间并将其存储到数据库中 如果我在 连接 表和 左 表中获得相同的值 会发生什么情况 如何修复它以便它存储不同的值 Schema create user info function Blueprint
  • Laravel:从邮件模板中获取电子邮件收件人

    在 Laravel 5 5 中使用通知时 您可以从toMail method 当您发送可邮寄邮件时 是否有等效的方法来访问收件人 有没有比像这样在构造函数中重复 User 实例更好的解决方案 Mail to user gt send new

随机推荐

  • 如何使用 ggplot2 在一组美国县周围创建边界?

    我对使用 R 比较陌生 我正在尝试使用数据来创建美国各州的地图 以勾勒出某些区域的轮廓并为其着色 我正在尝试用黑色显示一个州及其县 除此之外 我想在县组周围创建粗红色边框 并根据我拥有的一些数据对一些县进行颜色填充 本质上我想结合这两个图像
  • 使用授权过滤器区分控制器操作

    我想要 4 个具有相同名称的操作 控制器方法可能有不同的名称 但它们的名称相同 ActionName 它们的属性对于所有 4 个都是相同的 ActionName Same name public ActionResult AnonActio
  • Swift:表视图超类错误

    我使用 Swift 创建了一个滑出菜单 我之前已经做过很多次了 但是当我今天创建它时 我收到了这个错误 参见屏幕截图 这可能只是我犯的一个简单错误 这是我认为导致问题的代码 override func tableView tableView
  • Laravel 4.2,Artisan::call() 忽略 --env 选项

    我正在构建一个应用程序 需要创建新数据库 执行迁移并通过网页播种数据库数据 我正在尝试使用 Laravel 4 2 中的以下代码来实现此目的 请注意 这是在我设置的控制器内 Artisan call migrate array env gt
  • GWT 动态区域设置

    我想设置gwt locale在 Spring 的帮助下获取用户选择的区域设置LocaleContextHolder public static final String getCurrentLocale return LocaleConte
  • 从 strings.xml 中的数组设置微调器的值

    我有一个微调器 它使用 strings xml 中的数组 如果数组有 5 个字符串 1 2 3 4 5 并且我希望微调器显示第二个 string 2 作为默认值 这可能吗 我知道我可以重新排列字符串顺序 使第一个字符串为 2 但如果旋转对话
  • 用于匹配空格或标点符号和非字母数字的正则表达式

    我有这个正则表达式 s 这与数组中的任何空格或标点符号匹配 但不是所有标点符号 我正在努力寻找与任何标点符号匹配的示例 我考虑过匹配字符不是字母数字的位置 但这会导致重音字母和不同词典的问题 是否有全包标点符号 例如 当我说标点符号时我希望
  • 使用 PyDev 出现错误: at 0x0000000002731828> [重复]

    这个问题在这里已经有答案了 我收到一个简单打印语句的错误 可能的错误是什么 已更改为浮动并尝试过 但错误仍然存 在 if name main print i i for i in range 5 error
  • Laravel 验证规则需要两个字段之一,但两个字段都不应该同时存在

    当需要两个字段中的任何一个但两个字段不应同时存在时 是否有 Laravel 验证规则 例如 手机号码和电子邮件 其中一个应该存在 但不能同时存在 不幸的是 我找不到一个 为了满足您的需求 以下是我采取的步骤 Laravel 对于制作一个的情
  • CommandParameter 与 ListView 命令绑定无关

    我没有成功从 ListView 项目发送 CommandParameter 我的代码如下
  • 第一次机会例外

    我一直在浏览 MSDN 帮助文档来掌握 Visual Basic 尝试使用计时器的示例后 将标签和计时器组件拖到设计器中 并将以下内容添加到组件子例程中 Label1 Text My Computer Clock LocalTime ToL
  • 用于多态/单表继承关联的 Rails 嵌套属性形式

    我正在开发一个表单 使用 SimpleForm 它允许您编辑嵌入的关联 我遇到的问题是嵌套模型是子类 因此它们是不同的类型 具有可能不同的字段 我正在为每种类型的模型创建隐藏表单 并使用 JavaScript 显示所选类型的表单 仅供参考
  • 向 Angular HttpClient 添加 HTTP 标头不会发送标头,为什么?

    这是我的代码 import HttpClient HttpErrorResponse HttpHeaders from angular common http logIn username string password string co
  • 使用 NumPy 将固定调色板应用于图像?

    我有一个 RGB 字节的 NumPy 图像 假设它是这个 2x3 图像 img np array 0 255 0 255 255 255 255 0 255 0 255 255 255 0 255 0 0 0 我还有一个调色板 涵盖图像中使
  • 如何使用JavaScript更新/更改HTML内容并防止页面刷新?

    我是脚本新手 我想用 JavaScript 更新 HTML 内容 但正如你所看到的 网页不断刷新 如何防止页面刷新 JavaScript function showResult form var coba form willbeshown
  • 如何将数组中的数字“加倍”,并将其保存在新数组中

    这是一个两步问题 1 我试图将一个数组 原始数组 的内容 加倍 将其保存在一个新数组 加倍数组 中 2 然后将这两个数组分配给具有 2 个属性的对象 新对象 原始号码 双数 这就是我到目前为止所拥有的 我做错了什么 var numbers
  • 如何使用数据字段获取组合框显示值?

    我已在资源编辑器中将组合框数据设置为 第一 第二 第三 但是当我编译程序时 组合框完全是空的 我根本看不到任何项目 另外 如何设置默认选择哪个项目 如何以编程方式更改当前选定的项目 答案可以在这篇文章中找到 http codeguru ea
  • 以编程方式更改 WPF 按钮背景图像

    我正在尝试创建一个
  • 根据文本文件中提供的类名创建对象?

    我想知道 在 C 中是否可以使用从文件中读取的文本值来创建该名称的类的对象 例如 contents of file MyClass code read file code instantiate MyClass object 如果可能的话
  • Laravel 按分页排序

    我有一个posts表和comments表 评论属于帖子 我在帖子和评论模型中设置了关系 我确实按照每个帖子的评论数量对帖子进行排序 如下所示 posts Post with comments gt get gt sortBy functio