2012-07-11 130 views
2

我不確定這個特定頁面正在發生什麼。當我在調試模式設置爲2的情況下查看頁面時,只要我在模型中有一些調試工作,就會顯示所有調試內容以及最終產品。只要我將調試更改爲0,它只是給我一個空白的屏幕。查看源代碼顯示它具有html標籤,沒有別的。另外,如果debug設置爲2,並且我沒有在我的模型中調試任何東西,它會給我一個空白屏幕。有趣的是,我可以告訴我模型中的代碼正在工作,因爲代碼創建了一個臨時表,我在其中填充來自新表的信息,然後刪除表。我知道它是有效的,因爲我可以註釋掉刪除部分,並且表中包含所有數據,就像我期望的一樣,所以表正在創建。當我取消註釋代碼的刪除部分時,該表不存在,所以我知道我得到的代碼部分。cakephp 2.1空白屏幕

我的控制器中的下一件事是壓縮這些數據併爲視圖做好準備。

任何人都知道我可以做些什麼才能使其工作。這讓我感到莫名其妙,我不知道還有什麼要做。

感謝您的任何幫助。 Jamie

回答

1

CakePHP提供了3個調試級別 - 兩個用於開發,一個用於生產設置。 在調試= 0 appliation是在生產模式下面發展功能被禁用:

調試消息,與PR()和調試()創建的被禁用。 Core CakePHP緩存每隔99年(這是一個設置)刷新,而不是像開發中那樣每10秒鐘刷新一次 。錯誤視圖的信息量較少,請改用通用的 錯誤消息。不顯示錯誤。異常堆棧 跟蹤被禁用。除上述之外,許多插件和 應用程序擴展使用調試來修改它們的行爲。

在級別1(調試= 1)中的所有上述功能被啓用,但chancing 不那樣頻繁刷新在調試= 2時

要麼我不明白你的問題,或者你不是問正確的。調試級別與pr()和debug()的輸出相關,但與控制器對佈局和視圖的渲染無關。

0

在我看來,這是一個錯誤,如果我禁用調試模式(切換到生產),所有調試方法的調用應該被忽略,但顯然他們不是,見下文。

我有過這樣的呼叫(整個代碼散射):

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

產生這個錯誤

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

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

消除這些後(設定error_reporting(-1)後)我發現它在模型中的緊湊功能上失敗了(在lo中沒有任何錯誤G)。

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



由於這個問題是舊的,我不認爲會真正使用任何你,但也許這將幫助別人。

我正在使用CakePHP 1.3.14。