2016-11-10 85 views
0

我在输出分页列表的棒球比赛的页面上有一个简单的表格。它显示比赛日期,当地和客队以及城市。我有三个雄辩的模型(游戏,团队和城市),所有的关系都在工作,一切都很好。我喜欢能够做$game->localTeam->city->fullName(一个结合了城市和州的增变器)。按照雄辩的关系排序

本数据来源于以下查询:Game::with('teamHome', 'teamVisitor', 'teamHome.city')。我希望能够按任何列进行排序。但是如果我在查询上使用->orderBy(),它只允许对游戏表中的结果进行排序。我找不到在球队或城市排序的方法。从我读到的,我需要做一个流利的查询,并加入我所有的表。但是,我会有一个stdClass对象数组,并且无法在我的Eloquent关系中导航并使用上面描述的fullName mutator。

这个场景似乎很基本的,必须有这样的一个优雅的方式?

+0

你就不能像$游戏 - > localTeam-> sortBy( '​​名')和$游戏 - > localTeam->都市> sortyBy( '​​名称')? (假设团队和城市具有名称属性) –

回答

0

你可以做->get()后使用sortBy方法。这将获得收集,然后对其进行分类。

否则,你可以做一个RAW查询,但你失去了流利的语法。

+0

是的,但那只会对该分页页面的结果进行排序,对吧? – kag

+0

你是对的!也许你必须使用查询生成器,就像你说的。从Laravel 5.3返回一个集合 – kanashin