如何调试CakePHP

时间:2017-07-17 01:17:44

标签: cakephp

如何在CakePHP中调试delete()?当我这样做时:

debug($this->Sessions->delete($s));

我收到此错误:

{
    "message": "SQLSTATE[42S22]: Column not found: 1054 Unknown column \u0027session_id\u0027 in \u0027where clause\u0027",
    "url": "\/api\/sessions\/delete\/2856",
    "code": 500,
    "file": "\/var\/www\/vendor\/cakephp\/cakephp\/src\/Database\/Statement\/MysqlStatement.php",
    "line": 39
}
编辑:弄清楚我的问题,我错误地在表中调用了session_id列“sessions_id”。我更新了这个,它解决了我的问题。但是,我真的很想知道如何正确调试delete()find()。我注意到有一个调试控制台bin/cake console。然后help调试东西,但我不知道如何使用它,似乎无法找到任何关于此的文档。任何人都可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

错误消息直接来自DBMS,而不是来自CakePHP,它告诉您几乎所有您需要了解查询失败的原因,并没有真正获得更多信息的方法。< / p>

除非您正在谈论抛出异常的行,否则指向特定的行会相当复杂,因为在这种情况下,没有导致问题的确切行,CakePHP端工作得很好,你只是错误配置/命名的东西,这导致生成一个不起作用的SQL查询。

我建议使用适当的IDE和XDebug之类的调试器来暂停异常,然后就可以获得堆栈跟踪和一堆上下文信息,并且可以轻松地逐步完成代码。也可以在日志(/logs/*.log)中找到普通的堆栈跟踪。