2012-01-04 4 views
0

Когда контроллер или плагин не найден. Я хочу, чтобы это закончилось на конкретном контроллере, который анализирует ulr (db), и проверяет, есть ли в нем страница, связанная с ней. Итак, после маршрутизации по умолчанию я не хочу отсутствовать ошибку контроллера , но я хочу перейти на контроллер. Я хочу сохранить все функциональные возможности (плагин, маршрут администратора) от маршрута торта по умолчанию. Как это сделать?cakePHP 2.0 маршруты, когда контроллер не существует

ответ

1

Edited Я изменил свой ответ, чтобы дать более сжатое объяснение

Создайте файл обработчика исключений и переопределить функцию error404. Ссылка this documentation на помощь.

<?php 
// in app/Config/core.php 
Configure::write('Exception.handler', 'AppExceptionHandler::handle'); 

// in app/Config/bootstrap.php 
App::uses('AppExceptionHandler', 'Lib'); 

// in app/Lib/AppExceptionHandler.php 
class AppExceptionHandler extends ExceptionRenderer { 
    public function error400($error) { 
     $this->controller->redirect(
      //insert redirect code 
      //it works like any controller redirect, so you should be familiar with the syntax 
     ) 
    } 
} 
?> 
+0

Спасибо, но как я могу заставить это работать? Я разместил все файлы в правильных каталогах – waterschaats

+0

Обновленный ответ, чтобы узнать, помогает ли он вам. –

+0

Извините, но я до сих пор не могу заставить это работать. Кажется, он не достигает AppExceptionHandler.php, когда я помещаю неверный код в этот файл, ошибки нет. Я положил все в нужное место. – waterschaats

Смежные вопросы