Zend framework 是否可以在预分派中禁用操作?

Zend framework 是否可以在预分派中禁用操作?,zend-framework,zend-controller,Zend Framework,Zend Controller,在我的控制器中,我有一个preDispatch方法,检查用户是否登录。如果他不是我重定向用户到登录表单 有没有办法从preDispatch方法中禁用某个操作?因为我不需要此操作的授权。在插件中,您可以检查是否正在调用特定的控制器和操作,并允许请求继续 在你的插件中类似于以下内容的东西会起作用 public function preDispatch(Zend_Controller_Request_Abstract $request) { // ... $controller =

在我的控制器中,我有一个preDispatch方法,检查用户是否登录。如果他不是我重定向用户到登录表单


有没有办法从preDispatch方法中禁用某个操作?因为我不需要此操作的授权。

在插件中,您可以检查是否正在调用特定的控制器和操作,并允许请求继续

在你的插件中类似于以下内容的东西会起作用

public function preDispatch(Zend_Controller_Request_Abstract $request) {
    // ...

    $controller = $request->getControllerName();
    $action     = $request->getActionName();

    if ($controller == 'login' && $action == 'login') {
        return ; // do not execute any more plugin code
    }

    // deny access and redirect to login form
我通常使用我的“空”控制器/操作来执行此操作:

public function preDispatch(Zend_Controller_Request_Abstract $request) {
if (!$logined){
 $request->setControllerName('empty')->setActionName('index');
return;
}
}

它取代了您当前的行动。

我需要的是:)