2010-07-17 78 views
5

在我的Cake應用程序中,我有一個控制器「completed_projects」。它的索引操作沒有參數並列出了一些項目。不同的頁面可以通過 example.com/completed_projects/index/page:23CakePHP中命名參數的路由配置

訪問我想要的網址是這樣的:

example.com/portfolio/page23 

很顯然,我需要做一些這方面的路線。我試過很多都喜歡:

Router::connect('/portfolio/page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('pass'=>'page:num', 'num'=>'[0-9]+')); 

也:

Router::connect('/portfolio/:page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('named'=>'num', 'page'=>'page', 'num'=>'[0-9]+')); 

我也試過一次又一次地修改他們,但他們沒有工作得很好。

我正在使用CakePHP 1.3。任何幫助將不勝感激。

回答

1
Router::connect('/portfolio/page:page_num', 
    array('controller'=>'completed_projects', 'action'=>'index'), 
    array('page_num'=>'[\d]+') 
); 

在你的控制器,接入PAGE_NUM有:

$this->params['page_num']; 
+0

這傳遞PAGE_NUM(如23)的動作,但我想,一個命名參數傳遞喜歡頁:2通過。無論如何,感謝您考慮幫助。 – 2010-07-17 09:55:52

+0

對不起,更新了答案,以滿足您的需求,希望:) – Oscar 2010-07-17 12:27:19

+0

再次感謝奧斯卡。你能否詳細說明這個(或任何)變量如何用於分頁?在控制器中獲取傳入的變量不是必需的。我希望它被命名參數(如頁面:33),以便它可以用於分頁。它甚至有可能嗎? – 2010-07-21 17:35:05