2

我不确定这个特定页面发生了什么。当我查看调试设置为 2 的页面时,只要我在它工作的模型中有一些调试,就会显示所有调试内容以及成品。一旦我将调试更改为 0,它只会给我一个空白屏幕。查看源代码显示它有 html 标签,没有别的。

此外,如果调试设置为 2 并且我没有在我的模型中调试任何东西,它会给我一个空白屏幕。有趣的是我可以告诉我模型中的代码正在工作,因为代码创建了一个临时表,我在其中填充从新表中获取信息,然后删除表。我知道它可以工作,因为我可以注释掉删除部分,并且表格中包含我所期望的所有数据,因此正在创建表格。当我取消注释代码的删除部分时,表格不存在,所以我知道我已经到达了代码的那部分。

我的控制器中的下一件事是压缩这些数据并为视图做好准备。

任何人都知道我可以做些什么来让它工作。这让我莫名其妙,我不知道还能做什么。

谢谢你的帮助。杰米

4

2 回答 2

1

CakePHP 提供了 3 个调试级别——两个用于开发,一个用于生产设置。在 debug = 0 时,应用程序处于生产模式,以下开发功能被禁用:

使用 pr() 和 debug() 创建的调试消息被禁用。核心 CakePHP 缓存每 99 年刷新一次(这是一个设置),而不是开发中的每 10 秒刷新一次。错误视图提供的信息较少,而是提供通用错误消息。不显示错误。异常堆栈跟踪被禁用。除了上述之外,许多插件和应用程序扩展使用调试来修改它们的行为。

在级别 1 (debug = 1) 上,所有上述功能都已启用,但机会不会像在 debug = 2 中那样频繁地刷新

要么我不明白你的问题,要么你问得不对。调试级别与 pr() 和 debug() 的输出有关,但与控制器的布局和视图呈现无关。

于 2012-07-13T11:08:40.983 回答
0

在我看来这是一个错误,如果我禁用调试模式(切换到生产),所有对调试方法的调用都应该被忽略,但显然它们不是,见下文。

我有这样的电话(整个代码中的分散体):

CakeLog::write('debug', Debugger::trace());

产生此错误(设置后 error_reporting(-1)

PHP Fatal error:  Class 'CakeLog' not found in ...

或者

PHP Fatal error:  Class 'Debugger' not found in ...

删除这些后,我发现它在模型中的紧凑功能上失败了(日志中没有任何错误)。

$this->find('first', compact('conditions', 'fields', 'order', 'recursive'))



由于这个问题很老,我认为实际上对您没有任何用处,但也许它会对其他人有所帮助。

我正在使用 CakePHP 1.3.14。

于 2013-07-16T10:25:52.563 回答