所有控制器方法中都可用的变量?代码点火器 3

Variable available in all controller method? 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'] 一切正常,但我只需要一个这样的变量。当我使用这个时:

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

我收到这条消息:

遇到了一个PHP错误

严重性:通知

消息:未定义的变量:stanowiska

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

当您尝试在其他方法中使用 __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
    }
}