使用laravel 5.6和mysql。我的表名称为vehicles
id name categoryname brandname model
1 juy car toyota 121
2 gty van nissan caravan
3 bgh car bmw 520d
4 hyu van ford max
5 nhj car toyota 121
6 gtr car toyota corolla
7 gtr van nissan caravan
我正在使用以下控制器功能来显示带有bransnames的类别名称
public function filterbrand ()
{
$vehicles = DB::table('vehicles')
->orderBy('categoryname', 'asc')
->get();
return view('vehicles.brand')->withVehicles($vehicles);
并使用以下刀片文件显示数据
<?php $cat = ""; ?>
@foreach($vehicles->unique('modelname') as $vehicle)
@if($vehicle->categoryname != $cat )
<?php $cat = $vehicle->categoryname; ?>
{{$cat}}
<br><br>
@endif
<ul>
<li>{{$vehicle->brandname}}</li> <br>
</ul>
@endforeach
这是打印此类型的输出
汽车
丰田
121
丰田
花冠
宝马
520d
货车
日产
货车
福特
max
但是现在我还需要打印具有这种计数的型号名称
汽车
丰田
121(2)
丰田
花冠(1)
宝马
520d(1)
货车
日产
carvan(1)
福特
最大(1)
我该怎么做?
答案 0 :(得分:6)
您可以将count与group by一起使用,以获取带有count的模型:
public function filterbrand ()
{
$vehicles = DB::table('vehicles')
->select('categoryname','brandname','model', DB::raw('count(*) as total'))
->orderBy('categoryname', 'asc')
->groupBy('model')
->get();
return view('vehicles.brand')->withVehicles($vehicles);
}