2013-06-30 65 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

這應該是一個被接受的答案;) –