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