Я пытаюсь сохранить данные в сессии с помощью cakePHP. Я прочитал документацию и множество примеров в Интернете, но я не могу сохранить данные в сеансе.
В моем контроллере я добавил функцию записи сеанса:
public function take(){ if(array_key_exists('option', $this->request->data)){ foreach($this->request->data['option'] as $cmd => $options){ foreach($options as $cmd => $option){ $buildCmnd = '-1 RENDERER*'.$this->request->data['Playlist']['layer'].'*TREE*$master*SCRIPT*INSTANCE*externalCommand SET '.$this->request->data['Playlist']['el'].' '.$cmd.' text={'.$option.'}'; $this->send($buildCmnd); } } } $this->Session->write('TakenCommand', array( $this->request->data['Playlist']['el'] ) ); $this->autoRender = false; }
Я вызываю действие через jquery ajax:
$("#inputTake").click( function() { jQuery.ajax({ type:'POST', async: true, cache: false, url: '/Controller/take', success: function(response) { jQuery('#resultField').val(response); }, data:jQuery('form').serialize() }); return false; } );
Поскольку я использую ajax, я создал элемент, который я вызываю, чтобы проверить сеанс. Это содержимое элемента:
<pre> <?php print_r($this->Session->read());?> </pre>
Но переменная сеанса «TakenCommand» не появляется в выводе.
Я добавил компонент Session в файл AppController.php:
public $components = array('Session');
И я изменил исходный файл core.php по умолчанию от «php» до «cake» и обратно, но ни один из них не помогает.
Любые предложения будут ценны!
Некоторые ответы, которые я видел, предлагают установить 'checkAgent' => false в core.php, но это тоже не помогает. В CakePHP 1.x можно было установить уровень безопасности на среду, которая решила бы проблему, но эта опция недоступна в 2.x.