Cakephp不是';不显示调试消息

Cakephp不是';不显示调试消息,php,debugging,cakephp,Php,Debugging,Cakephp,我在保存数据时遇到了一些问题。 为了知道哪里出了问题,我想使用debug($var)或debug($this->myModel->validationErrors)在我的控制器中,但它似乎没有给出任何响应 我的情况是将一些数据发布到同一页面并保存数据 //my controller if ($this->request->is('post')){ debug($this->request->data); //here ever

我在保存数据时遇到了一些问题。 为了知道哪里出了问题,我想使用
debug($var)
debug($this->myModel->validationErrors)在我的控制器中,但它似乎没有给出任何响应

我的情况是将一些数据发布到同一页面并保存数据

     //my controller
    if ($this->request->is('post')){
        debug($this->request->data);
      //here everything breaks with the message "Error: An Internal Error Has Occurred."
      if($this->Invoice->save($this->request->data)){
            $this->Session->setFlash('Good job, invoice is saved');
        }
     debug($this->Invoice->validationErrors);

    }

在视图端,我没有任何echo来显示调试,因为我还没有找到这样做的源代码。

在Core.php文件中将调试级别设置为2

Configure::write('debug',2)

或者,修改db连接以确保编码已启用,默认情况下其已注释掉

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => 'password',
    'database' => 'test',
    'prefix' => '',
    'encoding' => 'utf8',
);

在Core.php文件中将调试级别设置为2

Configure::write('debug',2)

或者,修改db连接以确保编码已启用,默认情况下其已注释掉

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => 'password',
    'database' => 'test',
    'prefix' => '',
    'encoding' => 'utf8',
);

使用cakephp调试工具包插件

您还可以使用

Configure::write('debug', 2);
尝试使用打印输出

debug($data);
pr($data);

使用cakephp调试工具包插件

您还可以使用

Configure::write('debug', 2);
尝试使用打印输出

debug($data);
pr($data);
尝试:

尝试:


代码中的某个地方必须将调试模式设置为0,例如:-

Configure::write('debug',0)

它可能在app_控制器中或任何地方,因此在您的控制器中无法工作

尝试设置
Configure::write('debug',1)以利用此功能

  debug($this->Invoice->validationErrors);

代码中的某个地方必须将调试模式设置为0,例如:-

Configure::write('debug',0)

它可能在app_控制器中或任何地方,因此在您的控制器中无法工作

尝试设置
Configure::write('debug',1)以利用此功能

  debug($this->Invoice->validationErrors);

不幸的是,它已经设置为2。所以这不是问题所在。谢谢你。@deltu100你真傻。“mcgowan.b”在1分钟内给了你第一个答案。错误来自你。另一方面,与('debug',1)相比('debug',2)说明了更多的错误。不幸的是,它已经设置为2。所以这不是问题所在。谢谢你。@deltu100你真傻。“mcgowan.b”在1分钟内给了你第一个答案。错误来自你。另一方面,与('debug',1)Put Configure::write('debug',2)相比,'debug',2)说明了更多的错误;在控制器中,然后重试。如果仍然不起作用,请告诉我。@amarjeetkumar在action函数中?是的,您可以将if($this->request->is('post'))放在上面line@amarjeetkumar成功了!我不知道为什么,因为它已经在core.php中设置为该设置。我已经检查了一千次了,因为每个答案都在不断重复。我知道原因。在代码的某个地方,这必须设置为0,如Configure::write('debug',0);。它可能在app_控制器中或任何地方,因此它在您的控制器中不工作。现在您要做的是,将1设置为在控制器及其工作区中调试Configure::write('debug',2);在控制器中,然后重试。如果仍然不起作用,请告诉我。@amarjeetkumar在action函数中?是的,您可以将if($this->request->is('post'))放在上面line@amarjeetkumar成功了!我不知道为什么,因为它已经在core.php中设置为该设置。我已经检查了一千次了,因为每个答案都在不断重复。我知道原因。在代码的某个地方,这必须设置为0,如Configure::write('debug',0);。它可能在app_控制器中或任何地方,因此它在您的控制器中不工作。现在您要做的是,将1设置为调试控制器及其工作。谢谢您的额外解释。我现在明白了,谢谢你的解释。我现在明白了