2016-11-10 101 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