2011-05-23 77 views
3

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

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

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

谢谢!

回答

2

我发现我并不需要从动作助手内访问当前URL /路径。通过将表单动作留空,它会自动发布到当前URL。完善。

+0

实际上它是标准形式的行为。如果您需要当前网址,则可以使用不带参数的网址浏览帮助程序 – Xerkus 2011-05-23 07:15:27

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

5

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

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