2

CodeIgniter で遊んでいます。古い醜い PHP の一部を、より保守しやすいフレームワークに変換したいと考えています。しかし、かなり苛立たしい障害に遭遇しました。ビューでメソッドを定義できないようです。試行するたびに完全に空白のページが表示され、デバッグ ログを見ると、ビューが読み込まれた後に処理が停止したように見えます。ビュー内でメソッドを定義できますか? そうでない場合、その理由と、どのような回避策を提案しますか?

: このメソッドは、出力文字列のフォーマットに関係しています。

4

3 に答える 3

11

ヘルパーで関数を定義し、コントローラーからロードします。そうすれば、他のビューでも関数を再利用できます。

于 2008-11-09T09:55:06.200 に答える
0

私はCodeIgnitorに精通していませんが、テンプレートが複数回含まれている可能性があります。関数をチェックでラップしてみてください。

if (!function_exists('myfunc'))
{
    function myfunc() {}
}

CodeIgnitorはおそらくエラーを飲み込んでいるので、関数の直前にバッファーをフラッシュすることもできます。

while(ob_end_flush()){}
error_reporting(E_ALL);
ini_set('display_errors', 1);

ただし、実際には、文字列フォーマットコードをもう少し一般的にする必要があります。テンプレートは、関数の追加を開始するのに適した場所ではありません。コードの複製を開始すると、テンプレートを持つという目的がまったく失われます。CodeIgnitorのヘルパープラグインを試してみることをお勧めします

于 2008-11-09T08:02:35.490 に答える
0

ビューはコントローラー アクションを呼び出すためのものではありません。ロジックを逆にして、コントローラーでその関数を呼び出し、ビューに送信した変数に設定します。その後、if ステートメントでビュー テンプレートの変数をチェックできます。

それがうまくいかない場合は、ヘルパーが必要かもしれません: http://codeigniter.com/user_guide/general/helpers.html

于 2011-10-10T19:40:45.273 に答える