![](/img/trans.png)
[英]Limiting the number of relationships to a record with MySQL or Laravel
[英]Limiting relationships in Laravel
我有一個具有hasMany('Comments')關系的模型Post。 我想獲取所有具有“評論”關系的帖子,但僅獲取每個帖子的最新評論。 並且由於有成千上萬個帖子,每個帖子都有成千上萬的評論,因此由於性能問題(例如,為每個帖子加載所有評論,然后執行$ post-> comments [0]-> value),這樣的選項是不可能的:
Post::with('comments' => function($query){
$query->orderBy('created_at','desc')
});
我也不能這樣做:
Post::with('comments' => function($query){
$query->orderBy('created_at','desc')->limit(1)
});
因為這是行不通的。
我完全確定,我不是唯一一個遇到此問題的人,而且確實設法找到了一些“尋求解決方案的嘗試”,但並不是一個穩定的工作代碼示例。 有人可以幫忙嗎?
試試這個:假設您已經在Post模型中定義了“評論”關系。 這是您可以采用的所有注釋的方式:
App\Post::all()->comments()->orderBy('comments.created_at')->take(1)->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.