0

わかりましたので、私のコードは次のようになります。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once("/application/controllers/base/genericPageC.php");

class TutorialsC extends GenericPageC {
    function __construct() {
        parent::__construct();
    }

    protected function loadPage($args) {
        // ...
    }
}

/* End of file tutorialsC.php */
/* Location: ./application/controllers/pages/tutorialsC.php */

require_onceステートメントが存在するので、私は自分の遺産を持つことができます。今、私がステートメントを持っておらずrequire_once、すべてのコードが単一の巨大なフォーマットの悪いコントローラーにあったとき、すべてがうまくいきました。require_onceただし、を追加するとすぐに、header.phpすべてのスクリプトと CSS が追加されたビューが、<body>タグではなくタグ内に読み込まれ<head>ます。これにより、私のサイトのスタイルに小さな、しかし厄介な影響が生じます。私が自分で理解できることから、ビューがロードされる順序が変更されていると思います。それを修正する方法はありますか?

アップデート:

問題の原因はまだわかりませんが、私が行ったことは次のとおりです。./system/core/CodeIgniter.php に移動し、次の行を変更しました。

include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php');

に:

ob_start();
include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php');
ob_end_clean();

これで、正常にロードされます。

4

1 に答える 1

0

複数のコントローラーで使用されるメソッドを作成する必要がある場合は、他のコントローラーを要求したり含めたりするのではなく、ライブラリを作成することをお勧めします。

于 2012-07-05T21:03:13.713 に答える