猿问

在laravel中如何计算表阀

我想计算每个中心用户他们注册的学生人数。


我有两张不同的桌子,center和student


在第一个表中Center,我有 center_id列。在该表中,我有 center_id,例如“PP_123”。


在第二个表中student,我创建了center_code列。在该表中,我将 center_code 保存为“PP_123”。


如果中心用户注册学生时,第二个表student文件与学生数据一起存储center_code在student表中。


中心表数据 ALL CENTERS LIST


      scenter_name                Date of join      center_code

    HALO  COMPUTERS                02-12-2019         PP_123


         scenter_name             Date of join      center_code

    SKILL EDUCATION CENTER         02-12-2019         PP_123

学生表数据 ALL REGISTERED STUDENT LIST


student_name student_f_name student_m_name center_code

    abc           abc           abc         PP_123


student_name student_f_name student_m_name center_code

    xyz           xyz           xyz         PP_123


student_name student_f_name student_m_name center_code

        vvv           vvv           vvv         PP_124

视图应显示如下结果


CENTER CODE       DATE OF JOIN       CENTER NAME         APPLICATION COUNT

  PP_123           02-12-2019      HALO  COMPUTERS            2

  PP_124           10-12-2019    SKILL EDUCATION CENTER       1

控制器[此代码仅显示所有中心名称和 id]


public function center_activities()

{

    $activities_list = 

    return view('Center.cernter_activites',compact('activities_list'));

}



海绵宝宝撒
浏览 99回答 1
1回答

繁华开满天机

假设您想统计您正在搜索的中心的所有学生,您应该能够使用withCount来统计每个中心的相关记录。尝试如下设置:中心型号:public function students(){&nbsp; &nbsp; return $this->hasMany(Student::class, 'center_code', 'center_code');}控制器:$centers = Center::where('center_delete', 'NOT-DELETED')&nbsp; &nbsp; ->where('account_type', 'OLD_ACCOUNT')&nbsp; &nbsp; ->withCount('students')&nbsp; &nbsp; ->get();看法:@foreach ($centers as $center)&nbsp; &nbsp; ...&nbsp; &nbsp; <td>{{ $center->students_count }}</td>&nbsp; &nbsp; ...@endforeachLaravel 5.7 Docs - Eloquent - 关系 - 计数相关记录 withCount
随时随地看视频慕课网APP
我要回答