尝试打印有关属于每个包的包和属性的数据。
使用连接表连接其他两个表。
尝试使用属于每个包的单独属性打印每个包时,将为每个包打印所有包的所有属性。
控制器方法:
public function index()
{
$packages = Package::all();
$courses = DB::table('course_package')
->join('package', 'course_package.Package_Id', '=', 'package.Id')
->join('course', 'course_package.Course_Id', '=', 'course.Id')
->select('course_package.*', 'package.*')
->get();
return View::make('admin.package.index')
->with('packages', $packages)
->with('courses', $courses);
}
查看:
@foreach($packages as $package)
<tr>
<td>{{ $package->Id }}</td>
<td>{{ $package->title }}</td>
<td>{{ $package->description }}</td>
<td>{{ $package->university }}</td>
<td>{{ $package->faculty }}</td>
@foreach($courses as $course)
@if($course->Package_title = $package->title)
<tr>
<td>{{$course->Course_name}}</td>
</tr>
@endif
@endforeach
@endforeach
为了打印属于特定包裹的所有课程以及特定包裹,我需要做些什么?
答案 0 :(得分:3)
Laravel 开箱即用Relationships,使用它!
包和课程为many-to-many relationship,plotBS
为数据透视表(中级表)。
<强> package.php 强>
course_package
查看强>
class Package extends Model
{
public function courses() {
return $this->belongsToMany('App\Course', 'course_package', 'Package_Id', 'Course_Id');
}
}