2

この特定のページで何が起こっているのかわかりません。モデルにデバッグがある限り、デバッグを 2 に設定してページを表示すると、すべてのデバッグ内容と完成品が表示されます。デバッグを 0 に変更するとすぐに、空白の画面が表示されます。ソースを表示すると、html タグのみが含まれていることがわかります。

また、デバッグが 2 に設定されていて、モデルで何もデバッグしていない場合、空白の画面が表示されます。面白いことに、コードが一時テーブルを作成し、新しいテーブルから情報を取得してテーブルを削除するため、モデルのコードが機能していることがわかります。削除部分をコメントアウトすることができ、期待どおりのすべてのデータを含むテーブルが存在するため、機能することがわかっているため、テーブルが作成されます。コードの削除部分のコメントを外すと、テーブルが存在しないため、コードのその部分まで取得していることがわかります。

コントローラーの次の作業は、このデータを圧縮してビューの準備を整えることです。

これを機能させるために私ができることを誰でも知っています。それは私を際限なく困惑させており、他に何をすべきかわかりません。

助けてくれてありがとう。ジェイミー

4

2 に答える 2

1

CakePHP は 3 つのデバッグ レベルを提供します - 2 つは開発用、もう 1 つはプロダクション セットアップ用です。debug = 0 では、アプリケーションはプロダクション モードであり、次の開発機能は無効になっています。

pr() および debug() で作成されたデバッグ メッセージは無効になります。コアの CakePHP キャッシュは、開発中の 10 秒ごとではなく、99 年 (これは設定です) ごとにフラッシュされます。エラー ビューは情報が少なく、代わりに一般的なエラー メッセージが表示されます。エラーは表示されません。例外スタック トレースは無効になっています。上記に加えて、多くのプラグインとアプリケーション拡張機能はデバッグを使用して動作を変更します。

レベル 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 に答える