[英]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.