2013-07-26 69 views
0

我想在構造函數中設置一些數據,但如果我只是這樣設置它:$data['something'] = 'val';,它不起作用。是否可以在構造函數中設置一些數據,這些數據可以在同一個控制器的所有其他函數中使用,然後在視圖中使用?Codeigniter:從構造函數到視圖

+0

對於一個變量是在視圖中,需要傳遞'$ data'數組。 '$ this-> load-> view('page',$ data)'。 –

+0

你能不能展示一些更多的代碼?這包括控制器和視圖的代碼 – bottleboot

+1

@ user1257255試試我的答案,它工作得很好,它非常清晰! –

回答

3

把這個構造

$data['something'] = 'val'; 
$this->load->vars($data); 

要小心,不要使用$數據[「變種」] =如果您 已經宣佈它在構造函數方法等功能價值,因爲它會覆蓋 構造可變

+0

'val'如何可用於控制器中的所有功能? –

+1

試試這個人,你會證明這一點。如果你把它放在構造函數中,比在視圖中你可以像這樣打印<?php echo $ something; ?>。 試試吧,請在downvote之前! –

+0

我的不好,這個作品! Upvoted! @Erman:D –

0

試試這個:

class globalExample extends CI_Controller 
{ 
    public $variable = "wow"; 
    public function one() 
    { 
     echo $this->variable; // wow 
    } 
    public function two() 
    { 
     echo $this->variable; // wow 
    } 

} 
1

試試這個:

您設置的「東西」將會從所有的控制器的訪問,如果你將其發送到視圖,則該數據:

<?php 

Class Something Extends CI_Controller { 

    var $data = array(); //the data variable that will be available in all methods. 

    function __construct() { 
     parent::__construct(); 

     $this->data['stuff'] = 'do stuff'; //the data that you set on constructor 
    } 


    function index(){ 
     $this->data['controller_stuff'] = 'controller stuff'; 

     $this->load->view('yourview',$this->data); //both the 'stuff' and 'controller_stuff' will be sent to the view like this. 
    } 

}