我的应用中有实体称为帖子。帖子可以是其他帖子的子节点,因此父帖子有hasMany('posts'),子节点有hasOne('post'),包含是无限的。
这是架构:
如何递归获取第一个将'post_id'设置为null的Post的子女等子女和孩子?
请不要在这里评论性能,我知道这样的架构是坏的,我想知道的只是如何正确编写递归函数来检索无限的嵌套帖子。
比如说,我有第一篇文章1.
第2和第3个帖子是帖子1的子女
第4和第5职位是职位2的子女
职位6和7是职位3的子女
职位8,9,10是职位5的子女。
第11,12,13号职位是职位7的子女
第14篇是第10期的子女。
我想写一个递归函数,它会给我2-14的帖子。
答案 0 :(得分:1)
由于您明确要求我们不要对性能发表评论,因此您应该在帖子模型上添加with
属性,以便热切地包含所有孩子。
class Post extends Model
{
protected $with = [
'posts'
];
public function posts() {
return $this->hasMany(Post::class);
}
}