2015-10-13 158 views
1

我有一個Laravel 5.1的問題:雄辯的關係hasmany,限制記錄我有2個表:飼料,評論。該請求是針對每個特定的訂閱源獲取5條訂閱源和評論。我目前使用下面的查詢:Laravel 5.1:雄辯的關係hasmany,限制記錄

public function getFeed($user_id) 
{ 
    return Feed::whereUserId($user_id)->with(['comments'])->take(10)->get()->map(function ($feed) { 
     $feed->comments = $feed->comments->take(5); 
     return $feed; 
    }); 
} 

然而,返回所有的意見。我的想法是,$ feed-> comments = $ feed-> comments-> take(5);行不起作用。我只想爲每個Feed收到5條評論,你有什麼建議嗎?任何意見非常感謝。謝謝!

回答

-1

錯誤可能會在這裏

$feed->comments = $feed->comments->take(5);

$feed->comments = $feed->comments->take(5)->get();

我會建議你以這種方式

$feed->load(['comments' => function($query){ return $query->take(5); }])

2

通過這種方式,您可以限制所需的供稿計數以及每個供稿的評論數。

0

如果它的東西,將適用於所有情況,您可以調整這樣的飼料模型的關係:

public function comments() { 
    return $this->hasMany('App\Comment')->limit(5); 
}