2015-01-16 67 views
0

我在我的CakePHP頁面上使用分頁,它運行良好,但我有一個控制器文件中由不同功能生成的幾頁,並且存在一個麻煩的問題。在一個控制器中的不同當前頁面

讓我們假設我有兩個表與數百個條目,其中我paginators劃分和條目的顯示15在一個頁面上:

public $paginate = array(
    'Table1' => Array(
     'order' => array('Table1.id' => 'desc'), 
     'limit' => 15 
    ), 
    'Table2' => Array(
     'order' => array('Table2.id' => 'asc'), 
     'limit' => 15 
    ) 
); 

和功能此控制器文件:

public function showTable1() { 
    $this->set('table', $this->paginate('Table1')); 
} 
public function showTable2() { 
    $this->set('table', $this->paginate('Table2)); 
} 

當我在顯示「表1」時轉到下一頁時,我轉到下一頁,它運行良好。但是當我用另一個功能從同一個控制器文件生成的「表2」打開另一頁時,不幸的是也進入了第二頁。

我該怎麼做纔能有不同的「頁面指示」?我的意思是,當我進入「表1」的第三頁時,當我進入「表2」時,我不想去第三頁。

在此先感謝。我希望我明確提出了我的問題。的

+1

的'被設置的表格視圖變量,被覆蓋。 –

+0

同上@LozCheroneツ:你正在覆蓋變量;視圖中只有一個值可以由一個變量('$ table')保存。另請參閱:[「cakephp - 同一視圖上的蛋糕php多分頁」](http://stackoverflow.com/questions/23755546/cake-php-multiple-pagination-on-same-view)。 –

+0

但我不在一個視圖上使用這兩個控制器。它們分開使用。 – tamsiv

回答

0

,而不是在控制器的頂部設置分頁選項,請嘗試刪除該public $paginate和設置內行動的所有選項,像這樣(在第二動作的類似的方式)

public function showTable1() { 
    $options = array(
     'conditions' => array(
      'Table1.id' => whatever 
     ), 
     'fields' => array(
      'Table1.id' 
     ), 
     'order' => array(
      'Table1.id' => 'DESC' 
     ), 
     'limit' => 15 
    ); 

    $this->Paginator->settings = $options; 
    $table = $this->Paginator->paginate('Table1'); 

    $this->set(compact('table')); 
} 
+0

可以工作,但是每當我進入Table1或Table2頁面時,我都會從表格的第一個子頁面開始查看數據。我認爲感謝CakePHP paginator,我應該從最後訪問的子頁面開始查看。我的意思是現在代碼失去了記住上次訪問子頁面的功能。 – tamsiv

相關問題