cakephp 2.1空白屏幕

时间:2012-07-11 20:07:51

标签: cakephp-2.1

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

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

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

任何人都知道我能做些什么才能让它发挥作用。令我感到困惑的是,我不知道该做什么。

感谢您的帮助。 杰米

2 个答案:

答案 0 :(得分:1)

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

  

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

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

要么我不明白你的问题,要么你没有问对。调试级别与pr()和debug()的输出有关,但与Controller的布局和视图的渲染无关。

答案 1 :(得分: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。