0

バイヤー、セラー、パブリックなど、さまざまなモジュールを含む codeigniter でアプリケーションを開発しています。これらのモジュールはすべて同じヘッダー ファイルを使用します。1 つのモジュールのビューをロードするときに、この変数がその値に応じて売り手のヘッダーの一部をカスタマイズするのに役立つように、買い手、売り手、およびパブリック コントローラーで宣言されたグローバル変数が必要です。バイヤーモジュールとパブリックモジュールについても同様です。

コントローラースコープで変数を宣言し、その値をビューで使用する方法は何ですか。コンストラクターでその値を宣言して割り当てようとしましたが、ビューをロードするときに未定義の変数エラーが発生します。私もこの方法を試しました:

class Seller extends CI_Controller {

public $pagetype="seller";
public function __construct()
    {
        parent::__construct();
    }

しかし、まだ未定義の変数エラーが発生します。ビューをロードするときにページタイプの値を渡すことができますが、各コントローラーに約25〜30のビューがあるため、ビューごとにそれを行う必要があります。

何か助けはありますか?

4

3 に答える 3

0

独自のクラスを作成することを検討してください-シングルトンまたはレジストリの設計パターンを調べてください...しかし、これも読んでください:シングルトンの何がそんなに悪いのですか?

于 2013-10-18T05:45:40.393 に答える
0

コントローラーでは、これを使用してビューレイヤーでデータをグローバルに利用できるようにすることができます

$this->load->vars($data);

ここで、$data はキー => 値の配列です。これをコンストラクターまたは親コンストラクターに入れることができます

于 2013-10-18T05:45:43.340 に答える
0

メインの CodeIgniter オブジェクトを変数に割り当ててから、それを使用load->get_var($key)してビュー変数を取得できます。

function something() {
    $ci =& get_instance();
    $myvar = $ci->load->get_var(‘myvar);
}
于 2016-03-12T06:32:52.567 に答える