【问题标题】:Laravel 5.1: Pagination on Models with hasManyThrough()Laravel 5.1:使用 hasManyThrough() 对模型进行分页
【发布时间】:2016-03-16 14:22:06
【问题描述】:

我通过“产品”拥有“品牌”hasManyThrough“市场产品”。所以,

Brand >> Product >> MarketProduct

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

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

问题是$colletion 不是查询生成器或 Eloquent 的实例,所以我不能使用->paginate($num)。使用hasManyThrough时是否可以使用默认分页功能,还是需要手动构建查询才能使用分页?

【问题讨论】:

  • 你试过$collection = Brand::find($someId)->marketProducts();
  • 不错。 ->marketProducts()返回Illuminate\Database\Eloquent\Relations\HasManyThrough,可以使用分页!我还在官方文档中看到了提到这一点的部分。随意写一个答案。谢谢!
  • 知道我是否可以从中获取“from”和“to”?文档显示了分页器 JSON 有它,但我不认为它是辅助方法之一。
  • 对不起,我不明白。我有点忘记了 laravel,如果你能更具体的话:)
  • 所以,如果我在结果的第 2 页,每页显示 5 个结果,我将显示记录 6 到 10。“From”为 6,“To”为 10在这里。

标签: php pagination laravel-5.1 has-many-through


【解决方案1】:

如果您查看document,它会提到

...由于所有关系也可用作查询构建器,因此您可以添加 通过调用 cmets 方法并继续将条件链接到查询...

所以解决办法是:

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

【讨论】:

    猜你喜欢
    • 2016-06-11
    • 2015-12-14
    • 2016-08-12
    • 2015-10-23
    • 2016-09-26
    • 2016-05-05
    • 2015-10-21
    • 2015-08-10
    • 2016-05-31
    相关资源
    最近更新 更多