Я использую 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()
.Спасибо
Примечание: пример из этой ссылки у меня не работает