0

目前在我的 ZF 项目中有一个这样的 URL 结构:

/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

我想做的是使用自定义路由来获得更好的 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'); ?>

它会引发错误,因为我没有在参数中指定 news_page。

我怎样才能解决这个问题,并告诉 url 助手使用这些参数的“当前”值?

4

1 回答 1

6

如果当前请求中存在现有参数,则 url 助手将使用该参数。在您的特定情况下,似乎news_page没有在请求对象中设置参数。为您的路由中的参数设置默认值news_page应该可以解决您的问题。

因此,您的路线定义应如下所示:

new Zend_Controller_Router_Route(
  'news/:news_page/:blog_page', 
  array('controller' => 'news', 'action' => 'index', 'news_page' => 1)
);
于 2009-06-13T00:50:54.487 回答