Я работаю с 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');
}
}
}
С уважением, Барт
ум разместить свое AppExceptionHandler, чтобы мы могли видеть, что вы сделали до сих пор? Стоит отметить, что если вам нужно сделать рендеринг, вы можете использовать AppExceptionRenderer, который имеет доступ к системе просмотра через $ this-> controller. –
Привет, Брэд, спасибо. Я добавил код, но я думаю, что ваше замечание об AppExceptionRenderer - это то, что мне нужно. Тем временем я обнаружил, что я также могу добавить файл View/Errors/error400.ctp и таким образом управлять рендерингом ошибок 401 и 403. –
@Brelsnok Можете ли вы вставить свое последнее решение по этой проблеме. Я также пытаюсь использовать пользовательский обработчик ошибок, но не могу добиться успеха, потому что поваренная книга очень ограничена. – trante