2009-06-12 92 views
0

此刻在我的ZF項目有一個URL結構是這樣的:Zend公司網址視圖助手 - 保持現有PARAMS在反轉路線

/news/index/news_page/1/blog_page/2 

當我產生我的分頁我用URL助手如下:

<?php echo $this->url(array('blog_page'=>3)); ?> 

產生這樣的URL:

/news/index/news_page/1/blog_page/3 

我想要做的是使用自定義的路線有很好的[R的URL,這樣的事情:

new Zend_Controller_Router_Route(
    'news/:news_page/:blog_page', 
    array('controller' => 'news', 'action' => 'index') 
); 

然而,當我嘗試使用一個在視圖助手這條路線:

<?php echo $this->url(array('blog_page'=>3), 'newsIndex'); ?> 

,因爲我沒有在指定PARAMS它news_page拋出一個錯誤。

我該如何解決這個問題,並告訴url helper使用這些參數的'當前'值?

回答

6

如果url helper存在於當前請求中,它將使用現有參數。看起來好像在你的特定情況下,news_page參數沒有在請求對象中設置。在路線中爲news_page參數設置默認值應該可以解決您的問題。

所以,你的路由定義應該是這個樣子:

new Zend_Controller_Router_Route(
    'news/:news_page/:blog_page', 
    array('controller' => 'news', 'action' => 'index', 'news_page' => 1) 
); 
+0

感謝傑森,這正是發生了什麼事。 – 2009-06-13 09:07:52