2012-01-24 7 views
5

私は小さなcodeigniterコントローラを持っています。以下のコードコンストラクタ内のコードIgniter 2.0変数

class Example extends CI_Controller { 
    /* 
    * Constructor function 
    */ 

    function __construct() { 
     parent::__construct(); 
     $data['extraScripts'] = 'test'; //Use to add extra scripts in head 


    } 

    function function1() { 
     $this->load->view('v1',$data); 

    } 

    function function2() { 
     $data['extraScripts'] = 'extraScript Veriable override here'; 
     $this->load->view('v2',$data); 
    } 

は、私が欲しいのはコントローラのコンストラクタでveriable $data['extraScripts']を定義し、デフォルトでは、そのコントローラのすべての方法でそのveriableをたいです。私は関数f1の中でextraScripts変数を作成していないが、そのビューはコンストラクタ(またはanyotherメソッド)から値を取るべきで、私に未定義の変数エラーを与えてはならない。 2番目の関数f2では、extraScript変数をオーバーライドしています。そのビューは、オーバーライドされたテキストを表示する必要があります。それは可能ですか?

+1

は私の問題 ます$ this->ロード - > VARS($データ)を解きます。 –

答えて

6

$データを属性(基本OOP)にします。

たとえば、コンストラクタの最後にこれを使用して

class Example extends CI_Controller { 
    /* 
    * Constructor function 
    */ 

    public $data = array(); 

    function __construct() { 
     parent::__construct(); 
     $this->data['extraScripts'] = 'test'; //Use to add extra scripts in head 


    } 

    function function1() { 
     $this->load->view('v1',$this->data); 

    } 

    function function2() { 
     $data['extraScripts'] = 'extraScript Veriable override here'; 
     $this->load->view('v2',$this->data); 
    } 
} 
+1

このCodeIgniter関数を使用していますが、__construct()の$ this-> load-> vars($ data)も同じことをします。私は答えを得たので、上記でコメントしました。助けてくれてありがとう :) –

関連する問題