我正在使用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
下的值。
我该如何实现?
希望通过关系动态地做到这一点 我有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
那么我该如何使用车辆表从类别表和类别值计数中打印类别名称和图像,并在同一循环中全部打印?
答案 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
*保持图像名称与类别名称相同。