2015-12-10 73 views
0

我有「品牌」hasManyThrough「MarketProduct」到「Product」。所以,Laravel 5.1:帶有hasManyThrough的模型分頁()

Brand >> Product >> MarketProduct 

其中>>表示hasMany關係。我可以使用Brand中定義的hasManyThrough()方法獲得MarketProducts的集合(Illuminate\Database\Eloquent\Collection),如下所示。

$collection = Brand::find($someId)->marketProducts; 

問題是$colletion不是查詢生成器或機鋒的一個實例,所以我不能使用->paginate($num)。使用hasManyThrough時是否可以使用默認的分頁功能,或者是否需要手動構建查詢才能使用分頁?

+1

你嘗試過'$ collection = Brand :: find($ someId) - > marketProducts(); ' – Gonzalo

+0

不錯。 ' - > marketProducts()'返回'Illuminate \ Database \ Eloquent \ Relations \ HasManyThrough',它可以使用分頁!我也在官方文檔中看到它提到這一點的一部分。隨意寫一個答案。謝謝! – musicliftsme

+0

任何想法,如果我可以從中獲取「from」和「to」?文檔顯示了paginator JSON,但我不認爲它是輔助方法之一。 – musicliftsme

回答

2

如果你看看document,它提到

...因爲所有的關係,也可以作爲查詢生成器,你可以添加 進一步約束其意見通過調用 評論方法和繼續檢索爲將條件到查詢...

因此,解決辦法是:

$collection = Brand::find($someId)->marketProducts();