我正在建立一個論壇。Laravel排序最後記錄
在主頁面中,我想顯示每個論壇的最後一個回覆。
層次結構是這樣的:
論壇
的hasMany( '應用程序\主題')
hasManyThrough( '應用程序\主題', '應用程序\ Repley')
topics
belongsTo('App \ Forum')
的hasMany( '應用\回覆')
回覆
屬於關聯( '應用程序\主題')
我這樣做:
$forum->replies()->orderBy('created_at', 'desc')->first()
和它的工作。但我想按主題和回覆進行排序。 如果我在最後一個回覆後發佈新主題,我希望將該節目作爲最後一個回覆。
更新: 我這樣做,它的工作。但有沒有其他方法?
public function last() {
$topic = $this->topics->sortByDesc('created_at')->first();
$post = $this->replies->sortByDesc('created_at')->first();
return ($topic->created_at > $post->created_at) ? $topic : $post;
}
什麼是論壇,主題和回覆的關係? –
得到最後的重播,得到最後的話題,檢查誰是新的 –
容易,雄辯的方式https://softonsofa.com/tweaking-eloquent-relations-how-to-get-latest-related-model/ –