如何在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
调试东西,但我不知道如何使用它,似乎无法找到任何关于此的文档。任何人都可以帮忙吗?感谢。
答案 0 :(得分:0)
错误消息直接来自DBMS,而不是来自CakePHP,它告诉您几乎所有您需要了解查询失败的原因,并没有真正获得更多信息的方法。< / p>
除非您正在谈论抛出异常的行,否则指向特定的行会相当复杂,因为在这种情况下,没有导致问题的确切行,CakePHP端工作得很好,你只是错误配置/命名的东西,这导致生成一个不起作用的SQL查询。
我建议使用适当的IDE和XDebug之类的调试器来暂停异常,然后就可以获得堆栈跟踪和一堆上下文信息,并且可以轻松地逐步完成代码。也可以在日志(/logs/*.log
)中找到普通的堆栈跟踪。