目前在我的ZF项目中有一个像这样的URL结构:
/news/index/news_page/1/blog_page/2
当我生成分页时,我使用URL帮助程序,如下所示:
<?php echo $this->url(array('blog_page'=>3)); ?>
生成如下网址:
/news/index/news_page/1/blog_page/3
我想要做的是使用自定义路由来获得更好的网址,如下所示:
new Zend_Controller_Router_Route(
'news/:news_page/:blog_page',
array('controller' => 'news', 'action' => 'index')
);
但是,当我尝试在视图助手中使用此路径时:
<?php echo $this->url(array('blog_page'=>3), 'newsIndex'); ?>
它抛出一个错误,因为我没有在参数中指定news_page。
如何解决这个问题,并告诉网址助手使用这些参数的“当前”值?
答案 0 :(得分:6)
如果当前请求中存在参数,则url帮助程序将使用现有参数。在您的特定情况下,似乎未在请求对象中设置news_page
param。为路线中的news_page
参数设置默认值可以解决您的问题。
因此,您的路线定义应如下所示:
new Zend_Controller_Router_Route(
'news/:news_page/:blog_page',
array('controller' => 'news', 'action' => 'index', 'news_page' => 1)
);