私のコントローラーには、ユーザーがログインしているかどうかを確認するpreDispatchメソッドがあります。ログインしていない場合は、ユーザーをログインフォームにリダイレクトします。
preDispatchメソッドからアクションの1つを無効にする方法はありますか?このアクションの承認は必要ないからです。
私のコントローラーには、ユーザーがログインしているかどうかを確認するpreDispatchメソッドがあります。ログインしていない場合は、ユーザーをログインフォームにリダイレクトします。
preDispatchメソッドからアクションの1つを無効にする方法はありますか?このアクションの承認は必要ないからです。
プラグインでは、その特定のコントローラーとアクションが呼び出されているかどうかを確認し、リクエストの続行を許可できます。
プラグインで次のようなものが機能します。
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;
}
}
それはあなたの現在の行動に取って代わります。