2011-12-27 1 views
4

Я работаю с CakePHP 2.0 и хочу обрабатывать ForbiddenException. Я следил за example, описанным в Cookbook CakePHP.Render View from AppExceptionHandler

Мое исключение теперь поймано в AppExceptionHandler, но я не знаю, как перейти отсюда. Я хочу отобразить соответствующий вид, но $this недоступен. У кого-нибудь есть отправная точка для меня?

Edit:
Мой код до сих пор идентичен примеру Cookbook:

В приложение/Config/core.php

Configure::write('Exception.handler', 'AppExceptionHandler::handle'); 

В приложение/Config/bootstrap.php

App::uses('AppExceptionHandler', 'Lib'); 

В приложении/Lib/AppExecptionHandler.php

class AppExceptionHandler { 
    public static function handle($error) { 
     if($error instanceOf ForbiddenException){ 
      echo 'Oh noes! ' . $error->getMessage(); 
      // $this->Session->setFlash('To access the page please login');  
     } 
    } 
} 

С уважением, Барт

+0

ум разместить свое AppExceptionHandler, чтобы мы могли видеть, что вы сделали до сих пор? Стоит отметить, что если вам нужно сделать рендеринг, вы можете использовать AppExceptionRenderer, который имеет доступ к системе просмотра через $ this-> controller. –

+0

Привет, Брэд, спасибо. Я добавил код, но я думаю, что ваше замечание об AppExceptionRenderer - это то, что мне нужно. Тем временем я обнаружил, что я также могу добавить файл View/Errors/error400.ctp и таким образом управлять рендерингом ошибок 401 и 403. –

+0

@Brelsnok Можете ли вы вставить свое последнее решение по этой проблеме. Я также пытаюсь использовать пользовательский обработчик ошибок, но не могу добиться успеха, потому что поваренная книга очень ограничена. – trante

ответ

-2

Как вы упомянули на ваш комментарий, вы можете сделать копии мнений об ошибках на свой View папку и управлять визуализацией.

Если вы хотите также использовать сеанс, помните, что в любой части вашего приложения вы можете использовать CakeSession для доступа к сеансу.

http://book.cakephp.org/2.0/en/development/sessions.html#reading-writing-session-data

+1

Ненавижу, когда люди с ниспадающим видом без комментариев/объяснений. Это помогло бы мне и другим понять, почему некоторые считают, что это не очень хороший ответ. – luchomolina

+1

еще более раздражает то, что есть 2 downvotes, но нет другого ответа, кроме этого. Заставляет меня жаль, что я не смогу уменьшить нисходящее лицо человека: -P –