如何对 Eloquent 子查询进行排序

Ela*_*ley 2 php eloquent laravel-4

我有两个连接的表:团队和成员。这些模型通过 an:m 关系连接,在我的团队视图中,我将创建一个 foreach 循环来获取所述团队的成员,如下所示:

@foreach( $team->teammember as $member )
    {{ $member->firstname }} {{ $member->lastname }}
@endforeach
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好并且正常工作,我的问题是,如何获得按姓氏排序的成员列表?在我的控制器中,我没有获取成员,因为连接是通过模型完成的,我只能对团队进行排序,而不能对成员进行排序。

小智 5

如果您始终希望按姓氏排序,您还可以直接在模型的关系函数中添加 sortBy 调用。

    public function teammember() {
    return this->hasMany('Teammember')->orderBy('last_name');
    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我更喜欢采用 Darren Taylor 建议的单独方法来保持灵活性,但很高兴知道您也可以直接链接到关系函数。