zend 框架插件 - predispatch()
我用 predispatch() 方法编写了一个插件来检查每个控制器请求的访问权限。我将插件制作为:
class My_Plugin_Checklogin extends Zend_Controller_Plugin_Abstract { public function preDispatch() {
if (isset($_SESSION['Zend_Auth_Static'])) {
//no login
$request = $this->getRequest();
//the request
$request->setModuleName('default');
$request->setControllerName('index');
$request->setActionName('index');
//send to default/login/index
}
}
}
现在在每个控制器请求之前调用 predispatch() 。
但也不允许我登录。由于预调度方法,总是让我处于登录页面。我必须如何设置预调度方法。
请帮忙。
I wrote a plugin with predispatch() method to check access rights on each controller request . I have made plugin as :
class My_Plugin_Checklogin extends Zend_Controller_Plugin_Abstract {
public function preDispatch() {
if (isset($_SESSION['Zend_Auth_Static'])) {
//no login
$request = $this->getRequest();
//the request
$request->setModuleName('default');
$request->setControllerName('index');
$request->setActionName('index');
//send to default/login/index
}
}
}
It's calling predispatch() before each controller request now.
But also not allowing me to log in. always keeping me on login page due to predispatch method. How I have to set predispatch method.
Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于特定控制器(和/或操作)跳过此插件的最简单方法可能是在插件的
preDispatch()
方法的开头添加条件Probably the easiest way to skip this plugin for a particular controller (and/or action) is to add a conditional at the beginning of the plugin's
preDispatch()
method