首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉勒维尔-雄辩-返回相关的计数大于

拉勒维尔-雄辩-返回相关的计数大于
EN

Stack Overflow用户
提问于 2017-03-03 17:06:44
回答 1查看 21.5K关注 0票数 16

我有两张桌子。

产品品牌

我试着用最多的产品回归十大品牌车型。

我试过了。

代码语言:javascript
复制
Product::select('brand', DB::raw('count(brand) as count'))->groupBy('brand')->orderBy('count','desc')->take(10)->get();

但这不会返回洞模型,而只返回

  • 品牌
  • 计数

我也试过

代码语言:javascript
复制
 return $brands = Brand::whereHas('products', function($q) {
           $q->count() > 10;
       })->get();

但我知道错误是:

SQLSTATE42S22:未找到列:'where子句‘中1054个未知列'brands.id’(SQL:从products where brands.id =products.brand中选择count(*)作为聚合项)

我的品牌模型

代码语言:javascript
复制
public function products()
    {
        return $this->hasMany('App\Product','brand');
    }

我的产品模型

代码语言:javascript
复制
public function manuf()
    {
        return $this->belongsTo('App\Brand','brand');
    }
EN

回答 1

Stack Overflow用户

发布于 2017-03-03 17:25:44

如果您使用的是Laravel5.3,那么您应该能够用 method完成这一任务:

代码语言:javascript
复制
Brand::withCount('products')->orderBy('products_count', 'DESC')->take(10)->get();

其中products是您关系的名称。这将在查询中为您提供一个新字段,products_count,您可以根据该字段进行订购。

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

https://stackoverflow.com/questions/42584706

复制
相关文章

相似问题

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