我正在使用CakePHP 2.0並想要處理ForbiddenException。 我跟着在CakePHP Cookbook中解釋的example。從AppExceptionHandler呈現視圖
我的異常現在被捕獲在AppExceptionHandler中,但我不知道如何從這裏移動。我想渲染一個相關的視圖,但$this
不可用。 有沒有人有我的起點?
編輯:
到目前爲止我的代碼是相同的食譜例如:
在應用程序/配置/ core.php中
Configure::write('Exception.handler', 'AppExceptionHandler::handle');
在應用程序/配置/ bootstrap.php中
App::uses('AppExceptionHandler', 'Lib');
在app/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訪問視圖系統。 – 2011-12-30 07:14:03
嗨布拉德,謝謝。我已經添加了代碼,但我認爲你對AppExceptionRenderer的評論就是我需要的。 在此期間,我發現我也可以添加文件View/Errors/error400.ctp並以這種方式控制401和403錯誤的渲染。 – 2011-12-30 09:07:53
@Brelsnok你能否就這個問題粘貼你最新的解決方案。我也嘗試使用自定義錯誤處理程序,但不能成功,因爲食譜是非常有限的.. – trante 2012-08-23 22:10:20