按透视列排序

时间:2015-12-28 07:42:46

标签: php laravel laravel-4 eloquent

我有两个模型,/../students。每个学生都可以通过数据透视表languages使用某种技能说出 n 语言。例如,迈克说英语,技能为3,德语能力为7。

以下是学生模型:

student_language

这是语言模型:

class Student extends \Eloquent {
    public function languages()
    {
        return $this->belongsToMany('Language')->withPivot('skill');
    }
}

如何获得使用某种语言的学生列表,并按技能等级对其进行排序?在Fluent中它会是这样的,但是我不能使用连接并且需要在Eloquent中编写它:

class Language extends \Eloquent {
    public function students()
    {
        return $this->belongsToMany('Student')->withPivot('quality');
    }    
}

感谢您提供任何意见。

编辑:更新

1 个答案:

答案 0 :(得分:1)

我没有检查过这个,但你可以试试这个

Student::with(['languages' => function($q) {
    $q->orderBy('pivot_skill', 'ASC');
}])->get();