【发布时间】:2016-06-14 01:25:33
【问题描述】:
如何仅为已注册课程且我有 2 个表格和一个数据透视表的学生显示课程?
表 1:Home_Students : home_id , home_studid ....
表 2:Hw_Classes :class_id , class_desc , class_date ....
数据透视表:Hw_StudentClasses:Stclass_id、Stclass_classid、Stclass_studid
所以我制作了一个模型 MySeminarClasses 来与表 Hw_StudentClasses 和一个控制器 MySeminarClassesController
进行通信我在其他表belongsToMany的模型中建立了关系
public function Users(){
return $this->belongsToMany('User','home_id');
}
public function SeminarClass(){
return $this->belongsToMany('SeminarClass','class_id');
}
在控制器中我也这样做了,我不太确定它是否正确,但我是按照 laravel 4.2 文档的说明这样做的
$myclasses = DB::table('Hw_StudentClasses')
->join('Hw_Classes','Hw_StudentClasses.Stclass_classid','=','Hw_Classes.Class_id')
->join('Home_Students','Hw_StudentClasses.Stclass_studid','=','Home_Students.home_studid')
->orderBy('class_date',strtotime('-4 month'))
->get();
终于在刀片中
<tbody>
@foreach($myclasses as $i=>$myclass)
<tr>
<td>{{ $i+1 }}</td>
**<td>{{ link_to_route('class.show',$myclass->Class_desc,$myclass->Class_id) }}</td>**
<td class="text-center">{{ date('j-n-Y G:i',strtotime($myclass->class_date)) }}</td>
<td class="text-center">{{ UserEnroll::where('Stclass_classid',$myclass->Class_id)->count() }}</td>
</tr>
@endforeach
</tbody>
【问题讨论】:
标签: laravel join laravel-4 inner-join pivot-table