2010-09-28 14 views
22

Próbuję użyć Zend_Controller_Plugin_ErrorHandler do obsługi mojego błędu 404 przypadków. Zgodnie z doc, wtyczka ma stałe, których można użyć do dopasowania typów wyjątków i obsługiwać je odpowiednio. na przykładJak rzucić 404 wyjątków w Zend Framework

switch ($errors->type) { 
     case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE: 
     case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: 
     case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: 
      // 404 error -- controller or action not found 

Czy ktoś wie, jak tworzyć wyjątki tego typu?

Odpowiedz

68

Można zrobić tak:

$this->getResponse()->setHttpResponseCode(404); 

lub

throw new Zend_Controller_Action_Exception('This page does not exist', 404); 
+0

Dla Zend 2 [patrz tutaj] (http: // stackoverflow.com/questions/15968331/zend-2-how-to-throw-a-404-error-from- controller) – Victor

3

Można to zrobić tak:

$this->getResponse()->setStatusCode(404); 
return; 
+1

Wierzę, że poprawna metoda to setHttpResponseCode, a nie setStatusCode –