1

是否可以创建/扩展一个 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,而哪个 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 版本,它就会被覆盖,但它是一个快速修复,非常适合我的情况。

4

1 回答 1

1

您可以编写自己的异常处理程序。它在http://book.cakephp.org/2.0/en/development/exceptions.html#create-your-own-exception-handler-with-exception-handler中有很好的记录

无论如何,URL 似乎是这样的http://something/user/something。错误说UserController找不到,这是真的,因为你只有一个UsersController(复数)。如果您只是想避免此错误,找到创建/user/URL 的文件可能就足够了。

于 2012-08-01T12:55:42.973 回答