有人可以帮我解决以下laravel ORM问题
我有2个型号的ProductGroup和Product。 ProductGroup包含许多产品,并通过productGroup.product_id和product.id
链接我想用分页返回一组结果。非常简单的愿望,不是吗?
我目前的代码是
$result = ProductGroup::where("name", "=", "laptop")
->with(array("product"=>function($q){
$q->select("id","name");
}))
->get(array("id","product_id","name","created_timestamp"));
它有效,但我无法添加 - > gt; paginate()否则会抛出以下错误
Call to undefined method Illuminate\Database\Eloquent\Collection::paginate()
分页的最佳方式是什么?我可以手动创建分页(通过Paginator::make
),但我认为它不好,因为它仍然会返回整个数据集(减慢流量)。我可以使用原始查询limit
结果,但它也很麻烦,因为我需要再次手动计算总结果
我正在使用带有MySQL的Laravel 4.2
感谢您的帮助
答案 0 :(得分:0)
我找到了一个可以帮助他人的解决方案
错误的方式
->get((array("id","product_id","name","created_timestamp"))
->paginate(3)
正确的方式
->paginate(3, (array("id","product_id","name","created_timestamp"))
如果错误,请随意贬低