如何使用CakePHP 2.0中的handleError保存错误?

时间:2012-10-03 15:35:34

标签: php cakephp handleerror

我有一个大问题。好吧,我正在尝试保存我的Web应用程序中发生的错误。例如(仅举例),如果我将除法除以零,或者在查询中发生错误或类似的错误。所以,我想抓住它并将其保存在数据库中。但是CakePHP的handleError是静态的,所以我不能使用$ this-> MyModel-> saveError(...)。

在我的/app/Lib/AppError.php中我有这个:

class AppError extends ErrorHandler
{
     public $uses = array('Errors.Error');

     public static function handleError($code, $description, $file = null, $line = null, $context = null)
     {
         //This print the error:
         echo "Code: ".$code." Description: ".$description." File: ".$file." Line: ".$line."<br>";
         //I want to do this, (save to the database):
         $this->Error->saveError($code, $description, $file, $line);

     }
}

没有$ this-&gt;错误 - &gt; saveError($ code,$ description,$ file,$ line);它有效,但我不仅想要显示错误。 我认为需要一个例子或类似的东西。请帮我。 问候并谢谢你。 谢谢... P.D。:对不起英语,我是英国学生......

1 个答案:

答案 0 :(得分:0)

您将函数handelError定义为静态函数,因此变量$this不存在,因为静态环境无法知道它引用的对象,只能知道它的类名。在静态环境中,必须使用self::而不是$this,例如

self::Error->saveError($code, $description, $file, $line);

这也意味着必须将Error属性声明为static