Laravel ORM - where,with和paginate

时间:2015-02-10 02:15:11

标签: php laravel orm eloquent

有人可以帮我解决以下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

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我找到了一个可以帮助他人的解决方案

错误的方式

->get((array("id","product_id","name","created_timestamp"))
->paginate(3)

正确的方式

->paginate(3, (array("id","product_id","name","created_timestamp"))

如果错误,请随意贬低