2010-09-28 24 views
22

Tôi đang cố gắng sử dụng Zend_Controller_Plugin_ErrorHandler để xử lý các trường hợp lỗi 404 của tôi. Theo số doc, plugin có các hằng số mà người dùng có thể sử dụng để đối sánh với các loại Ngoại lệ và xử lý chúng tương ứng. ví dụ.Cách ném 404 ngoại lệ trong 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 

Có ai biết cách tạo ngoại lệ của các loại này cụ thể không?

Trả lời

68

Bạn có thể làm như thế này:

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

hoặc

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

Đối với Zend 2 [xem tại đây] (http: // stackoverflow.com/questions/15968331/zend-2-how-to-throw-a-404-error-from-controller) – Victor

3

Bạn có thể làm điều đó như thế này:

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

Tôi tin rằng phương pháp đúng là setHttpResponseCode không setStatusCode –