Configure :: read и контроллер глобальной переменной не работают в cakephp 2.10.12 - PullRequest
0 голосов
/ 30 апреля 2019

Я использую cakephp 2.10.12, и я создаю глобальную переменную в моем контроллере, как показано ниже:

class TestsController extends AppController {

    ....
    public $myConverter;    
    public $myLocale = '';
    public $myTimezone =  '';
    public $myCurr = '';
    ...
 }

Затем я инициализировал эти переменные в функции контроллера:

public function converterUtil() {
        $this->myConverter = new ConverterUtil();
        if (!empty($this->params['pass'][0])) {
            switch ($this->params['pass'][0]) {
                case 'jpn':
                    Configure::write('Config.language','jpn');
                    $this->myLocale = 'ja_jp';
                    $this->myTimezone =  'Asia/Tokyo';
                    $this->myCurr = 'JPY';
                    break;
                case 'idn':
                    Configure::write('Config.language','idn');
                    $this->myLocale = 'id_ID';
                    $this->myTimezone =  'Asia/Jakarta';
                    $this->myCurr = 'IDR';
                    break;
                case 'eng':
                    Configure::write('Config.language','eng');
                    $this->myLocale = 'en_US';
                    $this->myTimezone =  'America/New_York';
                    $this->myCurr = 'USD';
                    break;  
                default:
                    Configure::write('Config.language','eng');
                    $this->myLocale = 'en_US';
                    $this->myTimezone =  'America/New_York';
                    $this->myCurr = 'USD';
                    break;
            }
            $this->myConverter->init($this->myLocale, $this->myTimezone, $this->myCurr);

        }else {
            // debug('empty');
        }
        $testData = $this->Test->find('all');
        // debug($this->myLocale);

        $this->set('test_data', $testData);
        $this->set('locale', $this->myLocale);
        $this->set('timezone', $this->myTimezone);
        $this->set('curr', $this->myCurr);
}

Затем я получаю доступ к этим переменным в другой функции в том же контроллере:

    public function saveTests() {
        $msg = [];
        $this->Test->set($this->request->data('content'));
        $this->log('isi data content');
        $this->log($this->myLocale);
        $this->log($this->myTimezone);
        $this->log($this->myCurr);
        ....
}

Проблема в том, что $this->myLocale, $this->myTimezone и $this->myCurr пусты, когда я вызываю функцию saveTest.И функция saveTest вызывается, когда я делаю postRequest из внешнего интерфейса.Так в чем здесь проблема?Я пытался использовать Configure::write и Configure::read.но Configure::read также пусто, когда используется в saveTest().Спасибо

Примечание: пример из этой ссылки у меня не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...