1

私のコントローラーには、ユーザーがログインしているかどうかを確認するpreDispatchメソッドがあります。ログインしていない場合は、ユーザーをログインフォームにリダイレクトします。

preDispatchメソッドからアクションの1つを無効にする方法はありますか?このアクションの承認は必要ないからです。

4

2 に答える 2

3

プラグインでは、その特定のコントローラーとアクションが呼び出されているかどうかを確認し、リクエストの続行を許可できます。

プラグインで次のようなものが機能します。

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
于 2012-10-12T21:48:32.517 に答える
0

私は通常、これを行うために「空の」コントローラー/アクションを使用します。

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

それはあなたの現在の行動に取って代わります。

于 2012-10-13T12:00:47.807 に答える