如何在Laravel 5.6中打印型号名称的计数和编号?

时间:2018-12-09 08:30:56

标签: php laravel-5

使用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)

我该怎么做?

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);
    }