1
在我的控制器中,我有一個preDispatch方法,用於檢查用戶是否已登錄。如果他不是,我將用戶重定向到登錄表單。是否可以在預發送時禁用某個操作?
有什麼辦法可以禁用preDispatch方法中的一個動作?因爲我不需要此操作的授權。
在我的控制器中,我有一個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;
}
}
它替換當前的行動。
坦克很多,這是我需要:) –
@MichałKalkowski爲什麼不把它標記爲已解決? –