Laravel口才模型集合

问题描述 投票:1回答:1

我正在为laravel开发注释系统,并试图找到一种方法来雄辩地从数据库中检索正确的结果。

表的架构就是这样。每个评论都具有评论状态(启用,禁用),并且每个评论可能都有子评论。子注释与父注释有关系,并且都属于同一表。我想检索所有启用状态的评论,我的代码如下:

public function comments()
{
    return $this->morphMany('Models\Eloquent\Comment', 'commentable')
        ->where('status', '=', 'enabled')
        ->get()
}

上面的问题是,在返回的Collection中,我获得了启用状态的所有对象。相反,我不想包含已启用但已禁用其父注释的注释。

示例:

  • 父母评论:已禁用
  • -孩子评论:已启用
  • -孩子评论:已启用
  • 家长评论:已启用
  • -孩子评论:已启用
  • -孩子评论:已启用
  • -孩子评论:已禁用

在上面,我只想获取一个包含已启用的父注释以及已启用的两个子注释的集合

laravel collections model comments eloquent
1个回答
0
投票

[我认为,如果通过将子注释与父注释放在单独的表中来进一步规范化数据库,则可以通过单个数据库查询来最好地完成您的操作。

就是说,如果那不是一个选择,1-获取数组中所有活动的父注释,第二-获取数组中所有活动的子注释。3rd-循环浏览以选择活动的子评论以及匹配的活动父评论。

© www.soinside.com 2019 - 2024. All rights reserved.