laravel with 查詢列表限制條數

1.需求

需求,查詢文章列表,以及文章列表下的評論。可是每篇文章評論只須要查詢出2條便可(一篇文章可能有幾百個評論)。laravel

2.實現

  1. 配置關聯模型
//---------------------Article模型的關聯表配置以下----------------------------------
public function comments(){
        return $this->hasMany('Modules\Type\Entities\comments', 'article_id', 'id')
        ->select(['id','name'])->limit(2);
        //這裏就限制了只查詢2條評論,同時select()也限制只查詢comments的id 和name
        }
  1. 代碼實現
$articles=Article::all();
//查詢出對應條件的文章

$articles->each(function ($articles) {
            $articles->load('comments');
        });
//對每一個文章進行加載對應的評論關聯關係

return $articles;

3.總結

  • 主要是使用了each去作循環每一條文章,而後對每一條文章使用load()方法去加載Laravel的Model模型配置。注意這裏只能使用load去加載這個comments配置。PS(測試過其餘相似於load方法的關聯配置沒有想要的效果)
  • 雖然對每篇文章執行了一次查詢,很老套和顯得笨重,可是能實現這個特殊的需求。

4.參考

參考了Laravel官方Github貢獻者,themsaid討論給出的答案issuehttps://github.com/laravel/framework/issues/18014
Laravel貢獻者給出的答案git

相關文章
相關標籤/搜索