laravel with 查詢列表限制條數

玫翠慧發表於2019-02-16

1.需求

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

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討論給出的答案issuegithub.com/laravel/fra…

Laravel貢獻者給出的答案

相關文章