变量在所有控制器方法中可用? Codeigniter 3

时间:2016-07-01 05:06:23

标签: model-view-controller codeigniter-3

在我的控制器中:

        class Admin extends CI_Controller
        {

            public function dodaj()
            {
                $data['stanowiska'] = array(
                    'admin' => 'Administrator',
                    'ksiegowy' => 'Księgowy',
                    'glowny_ksiegowy' => 'Główny księgowy'
                );
                $this->load->view('dodaj', $data);
            }

            function edytuj()
            {
                $data['stanowiska'] = array(
                    'admin' => 'Administrator',
                    'ksiegowy' => 'Księgowy',
                    'glowny_ksiegowy' => 'Główny księgowy'
                );

                $this->load->view('edytuj_uzytkownika', $data);
            }
        }

有两个变量$ data [' stanowiska']并且一切正常但我只需要一个这样的var。当我使用它时:

public function __construct()
{
    parent::__construct();
    $data['stanowiska'] = array(
        'admin' => 'Administrator',
        'ksiegowy' => 'Księgowy',
        'glowny_ksiegowy' => 'Główny księgowy'
    );
}

我收到了这条消息:

遇到PHP错误

严重性:注意

消息:未定义的变量:stanowiska

我该怎么做才能解决这个问题?谢谢:D

1 个答案:

答案 0 :(得分:0)

当您尝试在其他方法中使用__construct()方法中的属性时,您必须使用$this关键字。适当的方式是:

class Admin extends CI_Controller
{
    public $data = []; //array initialization

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

        $this->data['stanowiska'] = array(
            'admin' => 'Administrator',
            'ksiegowy' => 'Księgowy',
            'glowny_ksiegowy' => 'Główny księgowy'
         );
    }

    public function dodaj()
    {
        $this->load->view('dodaj', $this->data);// using data array from constructor
    }

    public function edytuj()
    {
        $this->load->view('edytuj_uzytkownika', $this->data);// same here
    }
}