Zend Framework:将查询字符串附加到当前页面url

时间:2010-08-19 06:41:14

标签: zend-framework

如何将查询字符串附加到网址?我当然可以做一个(来自控制器行动)

$currUrl = $this->getRequest()->getRequestUri();
$newUrl = $currUrl . '/something/else';

如果requestUri看起来像/users那么好。但如果网址看起来像/users?page=1怎么办?那么我最终会得到类似/users?page=1/something/else的错误

1 个答案:

答案 0 :(得分:3)

这不是将参数添加到当前请求URI的可靠方法。比如说您正在使用默认模块路由,并且您当前的URI是例如。 /news。如果要将params添加到最后,则应首先附加操作名称,因此具有:/news/index/something/else。您可以看到手动执行此操作变得非常繁琐。 Zend Framework为您提供了轻松完成此任务的方法。在您的控制器中,您可以执行此操作以基于当前的URI生成URI:

$router = Zend_Controller_Front::getInstance()->getRouter();
$url = $router->assemble(array('something' => 'somethingelse'));

如果要使用新URI保留查询字符串,请执行以下操作:

if (!empty($_SERVER['QUERY_STRING']))
    $url .= '?'.$_SERVER['QUERY_STRING'];