sun*_*ung 10 plugins redirect zend-framework response request
我正在尝试将我的重定向(基于身份验证和其他各种状态)集中到前端控制器插件中.到目前为止,我已经尝试过:
$this->setRequest(new Zend_Controller_Request_Http('my_url'));
Run Code Online (Sandbox Code Playgroud)
在插件的各个点(即从routeStartup到dispatchLoopShutdown)还有:
$this->setResponse(new Zend_Controller_Response_Http('my_url'));
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供一些帮助,或指向我的教程方向?
Gor*_*don 30
最简单的方法是使用ZF的Redirect ActionHelper
$r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
$r->gotoUrl('/some/url')->redirectAndExit();
Run Code Online (Sandbox Code Playgroud)
或者在没有HelperBroker的情况下实例化它
$r = new Zend_Controller_Action_Helper_Redirector;
$r->gotoUrl('/some/url')->redirectAndExit();
Run Code Online (Sandbox Code Playgroud)
该ActionHelper提供了一个API只关心通过多种方法重定向,像gotoRoute,gotoUrl,gotoSimple,您可以根据您的需要的用例使用.
在内部,ActionHelper使用Response和Router的API来进行重定向,因此您也可以直接使用他们的方法,例如
$request->setModuleName('someModule')
->setControllerName('someController')
->setActionName('someAction');
Run Code Online (Sandbox Code Playgroud)
要么
$response->setRedirect('/some/url', 200);
Run Code Online (Sandbox Code Playgroud)
进一步阅读:
sma*_*007 23
如果您要查找用户未记录的重定向,则dispatchLoopStartup()的第一个参数是请求对象的句柄.
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
if(!Zend_Auth::getInstance()->hasIdentity())
{
$request->setControllerName('auth');
$request->setActionName('login');
// Set the module if you need to as well.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28068 次 |
| 最近记录: |