Php Zend,如何从Action Helper中访问当前路由

Php Zend,如何从Action Helper中访问当前路由,php,zend-framework,Php,Zend Framework,在Zend框架中,我有一个操作助手,可以在大多数页面上加载登录表单。这发生在帮助程序的preDispatch()方法中,我希望在表单上设置action(),以便它发回当前URL 从Action Helper中访问当前URL/路由的最佳方式是什么?访问请求(通过操作控制器),然后拉入getActionName()和getControllerName(),并将它们与baseURL()连接起来 有没有更简单的方法?(设置操作需要URI字符串作为参数) 谢谢 如果我理解正确,当用户登录时,您希望将他们发

在Zend框架中,我有一个操作助手,可以在大多数页面上加载登录表单。这发生在帮助程序的preDispatch()方法中,我希望在表单上设置action(),以便它发回当前URL

从Action Helper中访问当前URL/路由的最佳方式是什么?访问请求(通过操作控制器),然后拉入getActionName()和getControllerName(),并将它们与baseURL()连接起来

有没有更简单的方法?(设置操作需要URI字符串作为参数)


谢谢

如果我理解正确,当用户登录时,您希望将他们发送回他们所在的页面。我使用的代码是:

// the user has come from a particular page - send them back
if($_SERVER['HTTP_REFERER']) {
    $this->_redirect($_SERVER['HTTP_REFERER']);
} else {
// the user has come from the home page, or this page
    $this->_redirect('/');
}

它位于登录操作中(即
LoginController->loginAction()
)。

您可以按照@Elie的建议进行操作。但是,如果要使用ZF方法进行此操作,可以查看以下内容:

    $request = Zend_Controller_Front::getInstance()->getRequest();
    echo $request->getHeader('referer'); // referer's address
    echo $request->getRequestUri();      // current address

我发现我不需要从Action Helper中访问当前URL/路由。通过将表单操作留空,它会自动发布到当前URL。完美。

事实上,这是一种标准形式的行为。如果需要当前url,则可以使用url视图帮助器,无需任何参数