我在library / My / Utils / Utils.php中创建了一个文件。该文件的内容是:
class My_Utils_Utils{
public function test(){
$this->_redirect('login');
}
}
从布局中调用此类;问题出在_redirect();
我收到此错误:页面未正确重定向。我的问题是如何从ZEND框架1中的一个类中调用_redirect()
函数。
提前谢谢。
答案 0 :(得分:0)
使用redirect()
代替_redirect()
。用法是:
$this->redirect(<action>, <controller>, <module>, <param>);
在你的情况下,$this->redirect('login');
应该做到这一点。
答案 1 :(得分:0)
您可以使用redirector action-helper,您可以使用以下HelperBroker
静态获取:
// get the helper
$redirectHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
// call methods on the helper
$redirect->gotoUrl('/some/url');
但应注意,布局被视为视图层的一部分。通常,任何导致重定向的检查都应该在请求调度周期的早期进行,通常在控制器或front-controller plugin中进行。
答案 2 :(得分:0)
_redirect函数由Zend_Controller_Action类提供。您可以通过两种方式解决此问题:
扩展Zend_Controller_Action并使用_redirect
class My_Utils_Utils extends Zend_Controller_Action {
public function test(){
$this->_redirect('login');
}
}
布局:
$request = Zend_Controller_Front::getInstance()->getRequest();
$response = Zend_Controller_Front::getInstance()->getResponse()
$util = new My_Utils_Utils($request, $response); // The constructor for Zend_Controller_Action required request and response params.
$util->test();
使用gotoUrl()函数Zend_Controller_Action_Helper_Redirector :: gotoUrl()
$redirector = new Zend_Controller_Action_Helper_Redirector();
$redirector->gotoUrl('login');
//in layout :
$util = new My_Utils_Utils();
$util->test();