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

时间:2011-05-23 00:38:17

标签: php zend-framework

在Zend Framework中,我有一个Action Helper,可以在大多数页面上加载登录表单。这发生在Helper的preDispatch()方法中,我想在表单上设置setAction(),以便它回发到当前的URL。

从Action Helper中访问当前URL /路由的最佳方法是什么?访问请求(通过Action Controller),然后获取getActionName()和getControllerName(),并将它们与baseURL()连接?

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

谢谢!

3 个答案:

答案 0 :(得分:5)

你可以像@Elie建议那样做。但是,如果您想使用ZF方法,可以查看:

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

如果我理解正确,当用户登录时,您希望将它们发送回他们来自的页面。我用来做这个的代码是:

// 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())。