我有两张桌子。
产品品牌
我试图用最多的产品返回前十大品牌型号。
我试过了。
Product::select('brand', DB::raw('count(brand) as count'))->groupBy('brand')->orderBy('count','desc')->take(10)->get();
但是它不返回孔模型,只返回
我也试过
return $brands = Brand::whereHas('products', function($q) {
$q->count() > 10;
})->get();
但是我得到了错误:
SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“brands.id”(SQL:选择count(*)作为从products
wherebrands
id=products
中的聚合
我的品牌模式
public function products()
{
return $this->hasMany('App\Product','brand');
}
我的产品模型
public function manuf()
{
return $this->belongsTo('App\Brand','brand');
}
如果您使用的至少是Laravel 5.3,那么您应该能够使用withCount
方法来完成此任务:
Brand::withCount('products')->orderBy('products_count', 'DESC')->take(10)->get();
其中,products
是您关系的名称。这将在查询中为您提供一个新字段,products\u count
,您可以根据该字段进行订购。
试试这个:
$brands = Brands::has('products', '>' , 10)->with('products')->get();
我有一个表,其中包括一列浏览器版本。我只是想从记录集中知道每种浏览器有多少种。所以,我需要这样结束:总记录:10;InternetExplorer 8:2;铬25:4;火狐20:4。(总计10) 这是我的两便士: 当然,它只包含3个浏览器,而不是每个浏览器的数量。我该怎么做呢?
我想使用Laravel Eloquent完成任务。我在网上搜索过,没有找到任何有说服力的东西。有些人将groupBy()查询与查询生成器一起使用,如以下链接 但是我想创建这样的查询风格: 此代码仅返回第一个的计数。但是我要计算所有的。
我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入
我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca
我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:
我有一个雄辩的模特, 用户:用户(id、用户名、密码、电子邮件、状态) 简介:简介(id、用户id、名字、姓氏、性别、出生日期) 在控制器逻辑中,我急切地加载Profile模型。 我能做到, 或 但是怎么做呢,