如何在 ForEach 循环内的 Laravel Blade 中显示汇总数据?

问题描述

我试图在显示每种代码类型的视图上显示 ForEach 循环。那部分工作。我无法弄清楚如何显示每种代码类型存在多少代码段(存储在另一个表中)的计数。我不明白如何使用 code_type 的 id 来查询 code_type_selected 表并返回该计数。

在我的 CodeType 模型中

protected $fillable = [
    'name','color','icon'
];

public function codeTypesSelected() {
    return $this->hasMany(CodeTypesSelected::class,'code_type_id','id');
}

在我的 CodeTypeSelected 模型中

 protected $fillable = [
        'code_type_id','code_id',];

    public function codeTypes() {
        return $this->belongsTo(CodeType::class,'id','code_type_id');
    }

在我的控制器中

public function index(Request $request)
    {
        $codeTypes = CodeType::latest()->get();
        $codeTypesSelected = CodeTypesSelected::latest()->get()->groupBy('code_type_id');
        //dd($codeTypesSelected);
        return view('code_layout.index',compact('codeTypes','codeTypesSelected'));
    }

在我看来

<!-- /. ROW  -->
         <div class="row">
             @foreach($codeTypes as $codeTypeItem)
                 <div class="col-md-3 col-sm-12 col-xs-12">
                     <div class="panel panel-primary text-center no-boder bg-color-{{ $codeTypeItem->color }}">
                         <div class="panel-left pull-left {{ $codeTypeItem->color }}">
                             <i class="fa fa-{{ $codeTypeItem->icon }} fa-5x"></i>
                         </div>
                         <div class="panel-right">
                             <h3>
                                 {{ count($codeTypesSelected) }}
                             </h3>
                             <strong> {{ $codeTypeItem->name }} </strong>
                         </div>
                     </div>
                 </div>
             @endforeach
         </div>
     <!-- /. ROW  -->

解决方法

你试过了吗

CodeType::latest()->withCount('codeTypesSelected')->get()