首页 文章

如何在Laravel 5.6中打印modelname的计数和打印数量?

提问于
浏览
1

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

面包车
日产
carvan

最大

但现在我需要打印模型名称,其计数方式如此

汽车
丰田
121(2)
丰田
花冠(1)
宝马
520D(1)

面包车
日产
carvan(1)

最大值(1)

我怎样才能做到这一点?

1 回答

  • 3

    你可以使用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);
        }
    

相关问题