我在下面有laravel查询
$school = DB::table('sekolah')->get();
$morning_session = DB::table('sekolah')->join('pelajar', 'sekolah.sekolah_id', '=', 'pelajar.sekolah_id') ->where('pelajar.pelajar_sesi', 'like', 'Morning')->groupBy('pelajar.sekolah_id')->count();
$afternoon_session = DB::table('sekolah')->join('pelajar', 'sekolah.sekolah_id', '=', 'pelajar.sekolah_id')->where('pelajar.pelajar_sesi', 'like', 'Afternoon')->groupBy('pelajar.sekolah_id')->count();
我的刀片看起来像这样
@foreach($school as $d)
<div class="col-md-6">
<i class="fa fa-mortar-board" style="font-size:80px;display:block;text-align:center"></i>
<h4>{{$d->sekolah_nama}}</h4>
<!-- morning session -->
<i class="fa fa-calendar" aria-hidden="true"></i> Morning: {{$morning_session}} people
<!-- afternoon session -->
<i class="fa fa-calendar" aria-hidden="true"></i> Afternoon: {{$afternoon_session}}
</div>
@endforeach
我想要计算上午和下午的foreach学校ID。但结果显示只有pelajar.sekolah_id = 1 school website。您可以在student table
上查看下表答案 0 :(得分:0)
根据我所看到的情况,您可以使用以下内容:
$morning_session = DB::table('pelajar')
->select('sekolah_id', DB::raw('count(*) as total'))
->where('pelajar_sesi', 'like', 'Morning')
->groupBy('sekolah_id')
->pluck('total','sekolah_id')->all();
$afternoon_session = DB::table('pelajar')
->select('sekolah_id', DB::raw('count(*) as total'))
->where('pelajar_sesi', 'like', 'Afternoon')
->groupBy('sekolah_id')
->pluck('total','sekolah_id')->all();
然后在你看来像:
Morning: {{!empty($morning_session[$d->sekolah_id]) ? $morning_session[$d->sekolah_id] : '0'}} people
我希望我理解你的问题,这会有所帮助。