我有一个大问题。好吧,我正在尝试保存我的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。:对不起英语,我是英国学生......
答案 0 :(得分:0)
您将函数handelError
定义为静态函数,因此变量$this
不存在,因为静态环境无法知道它引用的对象,只能知道它的类名。在静态环境中,必须使用self::
而不是$this
,例如
self::Error->saveError($code, $description, $file, $line);
这也意味着必须将Error
属性声明为static
。