当前位置: 首页 > 知识库问答 >
问题:

如何递归获取Laravel中的记录?

龚志
2023-03-14

我的应用程序中有一个名为posts的实体。帖子可以是其他帖子的子帖子,因此父帖子有hasMany('Posts'),子帖子有hasOne('post')。包含是无限的。

以下是模式:

如何递归地获取“Post_id”设置为null的第一篇帖子的所有子帖子和子帖子的子帖子等?

请不要在这里评论性能,我知道这样的模式很糟糕,我只想知道如何正确编写递归函数来检索无限嵌套的帖子。

共有1个答案

韩涵衍
2023-03-14

因为您特别要求我们不要评论性能,所以您应该在post模型上添加一个带有属性的,以便急切地包含所有子元素。

class Post extends Model
{

   protected $with = [
        'posts'
   ];

   public function posts() {
        return $this->hasMany(Post::class);
    }

}

 类似资料:
  • 问题内容: 我使用Chart.js来显示每个月的预订数量。这是我的查询。一切正常。我的问题是,如果一个月没有预订,那么它什么也不会显示。没有零值。在图表上,我得到像 一月23 二月34 四月23 五月25 七月42 图表中显示了三月和六月。.在没有预订的月份中,如何获得零值。 要获得几个月的时间, 并获得预订号 问题答案: MySQL不会填写不可用的月份,它只会根据可用的内容进行分组,然后为您提供

  • 我在做一些类似递归获取属性的事情 代码的问题是:它只下降了一级,我想知道如何使用反射自动获取所有属性?我刚刚编写了以下示例容器代码: 在主要方法中: 我希望得到: 我现在得到的结果是: 有人能帮我使用PrintProperties方法吗?非常感谢你。

  • 问题内容: 我的数据库看起来像(pligg cms,样本数据) 假设,如何获取芝加哥的顶级parentID,它应该是位置。 我是否在php中编写了递归函数,或者在mysql中可行? 问题答案: 该网站非常好地概述了在mysql和PHP中存储分层数据的不同方法。要回答您的问题,最简单的方法是使用php和递归。您可以使用其他方法,例如,不需要多个数据库查询。但是,在处理大量插入和更新时,此方法的实现可

  • 问题内容: 因此,我已经构建了该程序来构建不同的楼梯案例。本质上,问题是:给定整数N,您可以建立楼梯的几种不同方式。确保N大于3且小于200。任何先前的步骤都不能大于其后续步骤,否则会破坏楼梯的目的。 所以给定N = 3,您可以建立一个楼梯:2步,然后再步1步 给定N = 4,您可以建立一个楼梯:3步,然后再步1步 给定N = 5,您可以构建两个楼梯:3步,然后2步,或4步,然后1步。 我的方法在

  • 问题内容: 使用MySQL,我想从具有此类字段结构的表中返回父母列表。ID,PARENTID,NAME(标准的父子层次结构)。我想遍历树以返回所有“父母”的列表。 我意识到“嵌套集”可能是处理此问题的更好方法-但目前我无法更改数据的结构。我将来会希望这样做。当前-我的数据集实际上将包含一些深度级别- 没什么疯狂的……也许2-5,所以我的递归命中不应太“昂贵”。 我已经看过SQL Server获取父

  • 问题内容: 我的功能有点问题。我想在许多目录中获取所有文件。目前,我可以检索传入参数的文件中的文件。我想检索作为参数传递的文件夹中每个文件夹的html文件。我会解释,如果我把参数“测试”我检索“测试”的文件,但我想找回“测试/ 1 / * HTML。”,“测试/ 2 / /。 html的”: 结果:[1,2,3] 谢谢 ! 问题答案: 看起来npm软件包会为您提供帮助。这是一个如何使用它的示例: