2013-06-30 66 views
5

我试图“记住”用户在浏览记录时所在的页面,以便当他返回列表时,他将返回到他离开的页面。指定页面进行分页 - Laravel 4

如何更改paginator的“当前页面”值?我试过了Input :: set('page',$ x);但没有这样的功能。 $ _GET ['page'] = $ x;不起作用。

此代码:

$list = Publication::orderBy($this->data['sort_by'], $this->data['order_by']); 

foreach ($this->data['filter_data'] AS $field => $value) { 
    $list->where($field, 'LIKE', "%$value%"); 
} 

$this->data['list'] = $list->paginate(15); 

回答

4

您可以通过数据库连接调整分页环境的页面。

DB::getPaginator()->setCurrentPage(2); 

不完全确定,但你可能可以通过类似这样的事情来浏览你的模型。

Publication::getConnection()->setCurrentPage(2); 

如果以上不工作(因为它从您的评论似乎),然后用Publication一个实例做。

$publication = new Publication; 

$publication->getConnection()->setCurrentPage(2); 

$list = $publication->orderBy(...); 
+0

两者都没有工作,我得到一个“调用未定义的方法”错误和一个“非静态方法xxx :: getConnection()应该不会被静态调用,假设$ this来自不兼容的上下文“错误 – wyred

+1

Woops,更新了答案。这应该是'DB :: getPaginator() - > setCurrentPage();' –

+0

它的工作原理,谢谢! – wyred

0

尝试

$pager->setCurrentPage(2); 
+0

我正在使用Eloquent,但似乎这种方法不存在 – wyred

21

我看着API ---原来这是容易得多,现在在2014年

所有你需要做的是设置

Paginator::setCurrentPage(2); 

任何时候,你打电话之前->paginate(),我相信,它应该覆盖?page=的页面集(或未设置)。

+1

这应该是一个被接受的答案;) –