CakePHP-2.0: Как я могу проверить отсутствующее действие / представление миссии для контроллера? - PullRequest
0 голосов
/ 21 октября 2011

Если кто-то нажмет на строку браузера с этим http://mysite/users/unknownaction, тогда я получу ошибку.

Я хочу перехватить эту ошибку и перенаправить на http://mysite/.

Как я могу сделать это в CakePHP-2.0.

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

Когда вы находитесь в производственном режиме, как предлагает Хьюго, пропущенные URL-адреса будут выбрасывать NotFoundException, что по умолчанию создает стандартную страницу "404 Не найдено". Если вы хотите изменить это поведение, вам придется обратиться к документации для обработки исключений в CakePHP 2.0 .

2 голосов
/ 21 октября 2011

Создайте файл "app_error.php" в папке "app".

<?php 

  class AppError extends ErrorHandler {
    function error404($params, $messages) {
      $this->Session->flash($messages);
      $this->controller->redirect(array('controller'=>'welcome', 'action'=>'index'));
      parent::error404($params);
    }
  }

?>

Вы можете сохранить сообщение об ошибке на флэш-памяти сессии перед перенаправлением.

...