2012-10-30 5 views

Antwort

9

Dies sollte mit Ereignis in ZF2 für weitere Details getan werden: click here auch dieser Code kann Ihnen helfen. http://pastebin.com/FFGVCpki

public function init() { 
    // Attach Event to EventManager 
    $events = StaticEventManager::getInstance(); 

    // Add event of authentication before dispatch 
    $events->attach ('Zend\Mvc\Controller\AbstractActionController', 'dispatch', array (
      $this, 
      'authPreDispatch' 
    ), 110); 
} 
public function authPreDispatch($event){ 
$target = $event->getTarget(); 
$serviceLocator = $target->getServiceLocator(); 
// Do what ever you want to check the user's identity 
$url = $event->getRouter()->assemble (array (
        "controller" => "<controller>" 
      ), array (
        'name' => '<route name>' 
      )); 
$response = $event->getResponse(); 
     $response->setHeaders ($response->getHeaders()->addHeaderLine ('Location', $url))); 
     $response->setStatusCode (302); 
     $response->sendHeaders(); 
     exit(); 
} 
+2

Gibt es schönere Art und Weise aus Modul zu umleiten. PHP? Ich mag es wirklich nicht, Header direkt zu senden, ohne die internen Umleitungsmechanismen von ZF zu verwenden. –

2

Manche mögen:

$e->getRouteMatch() 
->setParam('controller', 'Application\Controller\Login') 
->setParam('action', 'login');