使用Laravel5连接表和打印数据

时间:2018-04-05 22:42:30

标签: laravel-5 query-builder

尝试打印有关属于每个包的包和属性的数据。

使用连接表连接其他两个表。

尝试使用属于每个包的单独属性打印每个包时,将为每个包打印所有包的所有属性。

控制器方法:

 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  

为了打印属于特定包裹的所有课程以及特定包裹,我需要做些什么?

1 个答案:

答案 0 :(得分:3)

Laravel 开箱即用Relationships,使用它!

课程many-to-many relationshipplotBS为数据透视表(中级表)。

<强> package.php

course_package

查看

class Package extends Model
{
    public function courses() {
        return $this->belongsToMany('App\Course', 'course_package', 'Package_Id', 'Course_Id'); 
    }
}