首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Group by relation laravel

Group by relation laravel
EN

Stack Overflow用户
提问于 2018-12-02 17:51:07
回答 1查看 90关注 0票数 0

我有Model Category和products,Model Category有2个关系:

代码语言:javascript
复制
public function children()
{
    return $this->hasMany(self::class, 'parent_id');
}

public function parent()
{
    return $this->belongsTo(self::class, 'parent_id')->withoutGlobalScope('active');
}

和模型产品有:

代码语言:javascript
复制
public function category()
{
    return $this->belongsTo(Category::class);
}

我需要分类的groupBy产品,我有代码:

代码语言:javascript
复制
$products = Product::with('category')->whereHas('category', function ($query) 
          {
            $query->where('parent_id', null); //for main categories
        });

在刀片式服务器I groupBy中:

代码语言:javascript
复制
@forelse($products->groupBy('category.title') as $title => $prods)

如何检查父类别中的产品是否为空,并从子类别中写入带有父类别标题的产品?现在我得到的结果是空的..

EN

回答 1

Stack Overflow用户

发布于 2018-12-02 20:47:23

不要在视图中创建groupBy ...试试这个:

代码语言:javascript
复制
$products = Product::with('category')->whereHas('category', function ($query) 
      {
        $query->where('parent_id', null); //for main categories
      })
->get()
->groupBy('category.title');

此外,您可能必须执行与该查询相反的操作:

代码语言:javascript
复制
$categories = Category::withoutGlobalScope('active')
             ->where('parent_id',null)
             ->with('products')
             ->get();

记住将products hasMany关系添加到Category模型中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53579113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档