簡體   English   中英

CakePHP:如何路由Pagination的排序參數?

[英]CakePHP: How to route Pagination's sort parameters?

所以我正在嘗試使用分頁器和自定義路由在我的索引頁面上分頁。 這完全是通過索引操作,但索引操作可以顯示按最新,投票,活動或視圖排序的項目。 現在,URL看起來像這樣:

items/index/sort:created/direction:desc

如果你不在第一頁,它看起來像這樣:

items/index/sort:created/direction:desc/page:2

我想使用路由器讓它看起來像這樣:

newest/

我可以通過這條路線走得那么遠:

  Router::connect(
    '/newest/*',
    array('controller'=>'items', 'action'=>'index', 'sort'=>'created', 'direction'=>'desc')
);

但是,尋呼機鏈接不遵循該路線。 點擊下一頁后,您將回復:

items/index/sort:created/direction:desc/page:2

我怎樣才能讓它跟隨路由器並給我我想要的東西? 請記住,它都是來自同一個控制器動作,我試圖基本上路由分頁的排序參數。

對我來說,你的代碼是有效的(我已經測試了你的例子)。 你有沒有用paginator helper做些不尋常的事情?

這是我的路線:

Router::connect('/newest/*',array('controller'=>'tests', 'action'=>'index', 'sort'=>'age', 'direction'=>'desc'));
Router::connect('/oldest/*',array('controller'=>'tests', 'action'=>'index', 'sort'=>'age', 'direction'=>'asc'));

以下是按年齡欄排序時我看到的網址:

http://localhost/cakephp/1.3.0/newest/page:1
http://localhost/cakephp/1.3.0/newest/page:2
http://localhost/cakephp/1.3.0/newest/page:3

最古老的:

http://localhost/cakephp/1.3.0/oldest/page:1
http://localhost/cakephp/1.3.0/oldest/page:2
http://localhost/cakephp/1.3.0/oldest/page:3

並且它與尋呼機中的所有鏈接一起工作(第一個,上一個,1,2,3下一個,最后一個)。

你想要包括我認為傳遞的args。 像這樣的東西,

$this->params = $this->passedArgs();

這里也有一張支票, http://book.cakephp.org/view/46/Routes-Configuration

否則,我會擴展HTML Helper以創建我自己的鏈接方法,該方法從url中讀取參數並相應地創建鏈接。 然后你可以從你自己的助手管理你自己的鏈接:)

不要忘記您需要在索引操作中進行檢查以處理此問題。 就個人而言,我更傾向於在控制器中為每一個創建一個動作。

function newest(){

}
function votes(){

}
function active(){

}

//etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM