如何计算表列值并在刀片文件laravel 5.6中打印

时间:2018-09-24 09:42:30

标签: php mysql laravel

我正在使用laravel 5.6,并且我有名为vehicles的表,其列为categoryname

id   number  categoryname
1    123       Car
2    589       Van
3    589       Car
4    563       SUV
5    563       Van

现在,我在blade中有以下welcome.blade.php视图:

<img src="{{URL::asset('/images/car.png')}}" alt="profile Pic" height="50" width="50" class="center-block">
                        <div>Car</div>

                        <div>text text text texttext texttext texttext text trtrttr rrttrtr rrtrttr rtrtrttrtr rtrttrtr rrtrttr rrtrtr</div>
                        </div>
                        <div class="col-md-3 text-center">
                        <img src="{{URL::asset('/images/van.png')}}" alt="profile Pic" height="50" width="50" class="center-block">
                        <div>Van</div>

                        <div>text text text texttext texttext texttext text trtrttr rrttrtr rrtrttr rtrtrttrtr rtrttrtr rrtrttr rrtrtr</div>
                        </div>

我的问题是,现在我需要在categoryname列中计数相同的值,并在welcome.blade.php中以这种方式打印它们。

<div>Car</div>
<div>2</div>

<div>Van</div>
<div>3</div>

etc...

我有以下控制器来计算列值:

$names = Vehicle::groupBy('categoryname')->select('id', 'categoryname', \DB::raw('COUNT(*) as cnt'))->get(); 

它正在工作,但是我需要print在刀片文件中的车辆categories下的值。

我该如何实现?

图片 weicome.blade.php file here

希望通过关系动态地做到这一点 我有2个模型作为“类别”和“车辆”,并且具有以下关系“类别”

public function vehicles()
    {
        return $this->hasMany(Vehicle::class);
    }

public function category()
    {
        return $this->belongsTo(Category::class);
    }

和类别表名称如下

id   categoryname   images
1   Car             car.png
2   Van             van.png
3   SUV             suv.png
etc

那么我该如何使用车辆表从类别表和类别值计数中打印类别名称和图像,并在同一循环中全部打印?

1 个答案:

答案 0 :(得分:0)

在控制器中添加groupBy()

$names = Vehicle::groupBy('categoryname')->select('id', 'categoryname', \DB::raw('COUNT(*) as cnt'))->get()->groupBy('categoryname');

刀片中:

@foreach($names as $key => $name)
    <div class="col-md-3 text-center">
        <img src="{{ URL::asset('/images/'.$name->images) }}" alt="{{ $key }}" height="50" width="50" class="center-block">
        <div>{{ $key }} ({{ $name->count() }})</div>
        <div>text text text text</div>
    </div>
@endforeach

*保持图像名称与类别名称相同。