是否可以创建/扩展CakePHP异常处理程序,该处理程序显示用户尝试访问的url会引发异常?
通常当我查看我的error.log文件时,我会看到类似这样的内容:
2012-08-01 13:39:20错误:[MissingControllerException]无法找到控制器类UserController。 #0 /www/htdocs/w0081e0e/app/webroot/index.php(104):Dispatcher-> dispatch(Object(CakeRequest),Object(CakeResponse)) #1 {main}
我有一个工作的UsersController,但我不确定用户试图访问哪个url作为回报抛出此错误。它会帮助我看到error.log文件中的url。那可能吗?我是否必须创建/扩展异常处理文件?
更新 我没有编写自己的ExceptionHandler,而是更新了“lib / Cake / Error / ErrorHandler.php”中的“handleException”函数:
if (!empty($config['log'])) {
$message = sprintf("[%s] %s\n%s",
get_class($exception),
$exception->getMessage(),
$exception->getTraceAsString().' - http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n"
);
CakeLog::write(LOG_ERR, $message);
}
我知道一旦我更新CakePHP版本就会覆盖它,但它的快速修复对我的情况非常好。
答案 0 :(得分:1)
您可以编写自己的异常处理程序。它在http://book.cakephp.org/2.0/en/development/exceptions.html#create-your-own-exception-handler-with-exception-handler
中有很好的记录无论如何,网址似乎与http://something/user/something
类似。错误说无法找到UserController
,这是正确的,因为您只有UsersController
(复数)。如果您只是想避免此错误,则可能足以找到创建/user/
URL的文件。