2017-01-30 41 views
0

可以將paginator視爲模板導航(即提供next/prev網址)嗎?使用paginator進行視圖模板導航

我目前有一個paginator每頁1行。我想修改URL指向當前視圖,但使用行PK而不是:page querystring參數。

  1. 首先,訪問模型/視圖/ 5
  2. 在分頁程序的URL:

    • 接下來的鏈接,會去模型/視圖/ 6
    • 上的鏈接,就會去模型/查看/ 4
    • 分頁鏈接,會去模型/視圖/ X

這可能嗎?分頁URL是否可以用這種方式重寫?

回答

0

這應該是可以的,是的。首先,你需要一個合適的路線,使得使用名爲page的路由元素,如:

Router::connect('/model/view/:page', [ 
    'controller' => 'Models', 
    'action' => 'view' 
]); 

這是必需的,因爲分頁程序助手將通過生成鏈接時,URL陣列名爲page鍵設置頁碼。如果路由中沒有具有該名稱的元素,則該值將以查詢字符串結尾。同樣重要的是不要將page元素標記爲要傳遞,否則該值將滑入分頁程序幫助程序生成的URL數組中,並且不再與您的路由匹配。

您需要做的另一件事是確保paginator組件可以訪問請求的頁碼。默認情況下,組件從請求查詢字符串變量或分頁選項中讀取值。因此,在控制器例如,你可以這樣做:

$page = $this->request->param('page'); 
if ($page !== null) { 
    $this->paginate['page'] = $page; 
    // or 
    $this->request->query['page'] = $page; 
} 

// ... 

$result = $this->paginate(); 

對於一些較乾的,你可以在自定義組件,或擴展分頁程序組件移動這一點。

又見

+0

槽糕......附頁碼成爲參數,和更多的記錄添加,那將是現在不可能將其加入書籤並期待相同的數據?我越想它,這似乎越不切實際。能夠建立鏈接,同時在分頁內提供網址末尾的記錄PK是很好的... – TekiusFanatikus

+0

好吧,如果書籤是你想要支持的,那麼這不是一個合適的解決方案,不。使用主鍵或任何列進行分頁已超出內置分頁程序的範圍,並且與您的原始問題完全不同。 @TekiusFanatikus – ndm