【发布时间】:2018-03-14 08:15:07
【问题描述】:
我使用的是 laravel 5.4。想象一下,我想展示一些汽车广告。我将从表中获取所有汽车记录并将它们加载到我的页面中。现在我想在侧边栏中显示多个类别的计数(汽车类型、汽车颜色、汽车燃料),并且我想显示每个类别的计数。
例如:我们有 10 个汽车广告,其中两个是红色的,三个是绿色的,五个是白色的。我想在侧边栏中有这样的东西:
red(2)
green(3)
white(5)
我用SQL groupBy做到了:
$colors = DB::table('advertisments')->select('color_name', DB::raw('count(color_name) as total_color'))->groupBy('color_name')->get();
$gearboxes = DB::table('advertisments')->select('gearbox', DB::raw('count(gearbox) as total_gearbox'))->groupBy('gearbox')->get();
$param = ['colors' => $colors,'gearboxes' => $gearboxes];
return view('ads' , compact('ads','param'));
但是,我有几十个类别,我不能用一个 groupBy 来做,所以查询的数量会太多。 有没有办法用单个查询或更少的查询来做到这一点?
【问题讨论】:
-
你想要什么?使用 group by 或 laravel 代码的 sql 查询?
-
没关系,我只是想这样做。但我认为只有 sql 和 group by 才有可能
标签: php mysql sql laravel eloquent