2013-07-26 42 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. 
    } 

}