Laravel + Eloquent:在一个查询中组合2个表

时间:2013-12-02 21:59:40

标签: php mysql join laravel eloquent

我正在尝试使用Eloquent执行查询,在那里我可以获得用户的所有课程。

用户有自己的课程,因为他们在某个年级。因此,将包括该等级的所有课程。

$user->grade->courses

现在我想通过数据透视表:users_courses包含一些不在用户级别的课程。但我不知道如何使用Eloquent一次查询所有表。

enter image description here

编辑:以下是

class Users extends Eloquent {
    public function courses()
    {
        return $this->belongsToMany('Courses', 'users_courses', 'student_id', 'course_id');
    }

    public function grade()
    {
        return $this->belongsTo('Grades', 'grade_id');   
    }
}

class Courses extends Eloquent {
    public function grade()
    {
        return $this->belongsTo('Grades');
    }

    public function users()
    {
        return $this->belongsToMany('Users', 'users_courses', 'student_id', 'course_id');
    }
}

class Grades extends Eloquent {

    public function courses()
    {
        return $this->hasMany('Courses', 'grade_id');
    }

    public function users()
    {
        return $this->hasMany('Users', 'grade_id');
    }
}

0 个答案:

没有答案